![](/img/trans.png)
[英]Foreign key not saving with OneToMany relationship in Doctrine/Symfony
[英]error saving OneToMany and ManyToMany relationship with Doctrine 2
我對“ Doctrine2”有疑問。 嘗試保存關系“ ManyToMany”或“ OneToOne”時,PHP會拋出異常錯誤! 我留下錯誤,以便您可以幫助我。
致命錯誤:未捕獲的異常'InvalidArgumentException'消息為'通過關系找到了一個新實體'實體\\用戶#特權'未配置為級聯持久存儲實體的操作:實體\\特權@ 0000000012feb12000000000616126d4。 顯式或持久化新實體設置級聯持久化關系上的操作。 如果您無法通過實現實體'Entities \\ Privilege#__toString()'來找出導致問題的原因,則可以獲取線索。 “在C:\\ Program Files \\ EasyPHP-5.3.4.0 \\ www \\ mframework_2 \\ phpinc \\ Doctrine \\ ORM \\ UnitOfWork.php上的第576行
我用來保持這種關系的代碼是:
$user = new \Entities\User(); $user->setActive(true); $user->setUsername('xxx'); $user->setPassword('xxx'); $email = new \Entities\Email(); $email->setEmail(xxx'); $email->setType('xxx'); $user->addEmail($email); $this->em->persist($user); $this->em->flush();
在Entitie用戶中,我有以下內容:
/** @OneToOne(targetEntity="Privilege") */ protected $privilege;
我與ManyToMany關系有同樣的問題!
非常感謝你!
在您的特權字段中添加cascade = {“ persist”}:
/** @OneToOne(cascade={"persist"}, targetEntity="Privilege") */
protected $privilege;
執行以下操作之一:
1-對用戶和電子郵件對象都使用持久化
$this->em->persist($user);
$this->em->persist($email);
$this->em->flush();
要么
2-將級聯添加到您的實體
/** @OneToOne(targetEntity="Privilege", cascade={"persist"}) */
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.