我在使用$em->flush ()
时遇到问题;
对象$ education持续抛出$em->persist ($education)
。
该位置是我项目中的一个实体,与教育实体有关,抛出多对一的关系。
错误框包含:
A new entity was found through the relationship 'XBundle\Entity\Education#location' that was not configured to cascade persist operations for entity: NewYork. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}).
我该如何解决这个问题?
答案 0 :(得分:0)
对关系使用cascade={"persist"}
。 E.g:
/**
* @ORM\OneToOne(targetEntity="Foo\Bundle\Entity\User", mappedBy="bar", cascade={"persist"})
*/
protected $foo;
答案 1 :(得分:0)
在Doctrine 2中,级联持久性不会自动发生。相反,您需要明确指出您想要它。如果您使用docblock注释来指定数据库架构,则可以通过将级联属性添加到 @ManyToOne 关联来实现:
<?php
namespace XBundle\Entity;
/**
* @Entity
*/
class Education
{
//...
/**
* @ManyToOne(targetEntity="Location", cascade={"persist"})
*/
protected $location;
//...
}