1
私はDoctrine 2.1で双方向の1対多の関係を作成しようとしています。私のコードをmanualと他のexamplesと比較しても、私が間違っていることはまだ分かりません。空の画面しか表示されないので、デバッグは難しいです。 (log_threshold = 4ですが、ログにエラーはありません)。双方向1対多
私は、これらの2つのテーブルを持っている:
/**
* @Entity
* @Table(name="user")
*/
class User
{
/**
* @Id
* @Column(type="integer", nullable=false)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @OneToMany(targetEntity="Cart", mappedBy="user_id")
*/
private $carts;
}
/**
* @Entity
* @Table(name="cart")
*/
class Cart
{
/**
* @Id
* @Column(type="integer", nullable=false)
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ManyToOne(targetEntity="User", inversedBy="carts")
*/
private $user;
}
:
ユーザー
id
name
カート
id
items
そしてここでは私の二つのモデル(ショート)であります
それから私は、私は空白の画面を取得ここで彼らに
$user = $this->em->find('models\User', 8);
$cart = new models\Cart();
$user->getCarts()->add($cart);
$cart->setOwner($user);
$this->em->persist($cart);
$this->em->flush();
をリンクしてみてください。 One-To-Manyなしで正常に動作します。
'$ user-> getCarts() - > add($ cart);'は動作しません。ユーザーエンティティにメソッドaddCart()を作成する必要があります。 – Nanocom
はい、getCarts()とsetOwner()があります。 em-> flush()を使わなくてもうまく動作します。 – PiTheNumber