1
我正在尝试在Doctrine 2.1中创建双向一对多关系。我将我的代码与manual和其他examples进行了比较,但仍然看不到我做错了什么。我只看到一个空白的屏幕,所以很难调试。 (log_threshold = 4,但日志中没有错误)。双向一对多
我有这两个表:
用户
id
name
车
id
items
这里是我的两个模型(简称):
/**
* @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;
}
然后我尝试将它们链接
$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();
在这里,我得到一个空白屏幕。 没有一对多它工作正常。
'$ user-> getCarts() - > add($ cart);'不起作用。你必须在User实体中创建一个方法addCart() – Nanocom
是的,我有getCarts()和setOwner()。没有em-> flush()可以正常工作。 – PiTheNumber