別のエンティティのインスタンスを返す必要があるエンティティがあります-保存されたレコード、または保存されていない場合は新しいレコード。
<?php
/**
* @Entity
*/
class User {
/**
* @OneToOne(targetEntity="Basket")
* @JoinColumn(nullable=true)
*/
protected $activeBasket;
public function getActiveBasket() {
if (!isset($this->activeBasket)) {
$this->activeBasket = new Basket($this);
// $em->persist($this->activeBasket);
// $em->flush();
}
return $this->activeBasket;
}
}
私の問題は、この新しいバスケットを永続化するために使用する EntityManager がないことです (明らかに、モデルには必要ありません)。これを行う最善の方法についてはわかりません。$user->getActiveBasket()
バスケットが以前に作成されたか新しいものかに関係なく、バスケットを呼び出して取得できるようにしたいと考えています。
これは一般的な問題であるか、またはこれを構造化するためのより良い方法があるように感じます (EntityRepository などにフックする方法があることを願っています)。これどうやってするの?