Symfony2:$ em-flush()正在生成错误

时间:2014-02-11 14:06:37

标签: symfony doctrine-orm

我在使用$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"}). 

我该如何解决这个问题?

2 个答案:

答案 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;

    //...
}