错误保存一个多和多多的关系与原则2


error saving OneToMany and ManyToMany relationship with Doctrine 2

我对"Doctrine2"有一个问题。当试图保存一个关系" manymany "或"OneToOne" PHP留下异常错误!我留下这个错误,以便你能帮助我。

致命错误:未捕获的异常'InvalidArgumentException'与消息'一个新的实体被发现通过关系'实体'用户#特权'未配置为级联持久实体操作:实体'特权@ 0000000012feb12000000000616126d4。显式或持久化新实体,在关系上设置级联持久化操作。如果您无法通过实现实体'Entities ' Privilege # __toString()'来找出导致问题的原因,以获得线索。"in C: ' Program Files ' EasyPHP-5.3.4.0 ' www ' mframework_2 ' php ' Doctrine ' ORM ' UnitOfWork.php on line 576

我用来保持关系的代码是: <>之前$user = new 'Entities' user ();用户-> setActive(真正的);用户-> setUsername("xxx");用户->向setPassword("xxx");$email = new 'Entities' email ();电子邮件-> setEmail (xxx);电子邮件-> setType("xxx");用户-> addEmail(电子邮件);$ this -> em ->保存($ user);$ this -> em>冲洗();之前

在实体用户中我有这个:

/** @OneToOne(targetEntity="Privilege") */
    protected $privilege;

我也有同样的问题,很多很多关系!

非常感谢!

将cascade={"persist"}添加到权限字段:

/** @OneToOne(cascade={"persist"}, targetEntity="Privilege") */
protected $privilege;

做其中一个:

1-对user和email对象都使用持久化

$this->em->persist($user);
$this->em->persist($email);
$this->em->flush();

2-添加级联到您的实体

/** @OneToOne(targetEntity="Privilege", cascade={"persist"}) */