Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Doctrine2许多自我参照_Php_Doctrine Orm_Many To Many - Fatal编程技术网

Php Doctrine2许多自我参照

Php Doctrine2许多自我参照,php,doctrine-orm,many-to-many,Php,Doctrine Orm,Many To Many,我在坚持多对多的自我参照关系方面遇到了问题。 我收到错误消息: 在链配置的命名空间中找不到类“条令\ORM\Persisters\ManyToManyPersister” 当我删除与它们一起保存的所有子窗体项时,会发生这种情况。 至少留下一个不会使错误发生。此外,如果我最初保存实体时没有子项,则一切正常 /** *West\Albumble\Entity\Album * *@ORM\Table(name=“albums”) *@ORM\Entity(repositoryClass=“West\a

我在坚持多对多的自我参照关系方面遇到了问题。 我收到错误消息:

在链配置的命名空间中找不到类“条令\ORM\Persisters\ManyToManyPersister”

当我删除与它们一起保存的所有子窗体项时,会发生这种情况。 至少留下一个不会使错误发生。此外,如果我最初保存实体时没有子项,则一切正常

/**
*West\Albumble\Entity\Album
*
*@ORM\Table(name=“albums”)
*@ORM\Entity(repositoryClass=“West\albundle\Entity\AlbumRepository”)
*@ORM\HasLifecycleCallbacks
*/
类Album扩展实体实现CrudEntity
{
/**
*@ORM\ManyToMany(targetEntity=“相册”)
*@ORM\JoinTable(name=“albums\u relations”,
*joinColumns={@ORM\JoinColumn(name=“album\u id”,referencedColumnName=“id”)},
*inverseJoinColumns={@ORM\JoinColumn(name=“related\u album\u id”,referencedColumnName=“id”)}
* ) 
*@var数组集合
*/
受保护的$U相册;
}
如果使用Symfony2表单进行测试,请记住设置

“按参考”=>错误


我发现,当从MergeDoctrineCollectionListener.onBind()调用UnitOfWork.ScheduleCollectionDelete方法,并克隆PersistentCollection对象(“by_reference”=false)时,就会出现问题

解决此问题的一个快速方法是在MergeDoctrineCollectionListener类中注释以下行:


我也有同样的问题。运气好吗?请看下面的网址,我想这对你很有帮助。需要帮助理解条令多对多自参考代码您的条令嵌入在哪里?西蒙尼?哪个版本?此问题已报告给Doctrine,不应评论供应商代码,因为它将阻止您将来通过composer接收更新。如果你想干净利落地做到这一点,你可以用Dorchine的回购协议,做出改变,然后用你的叉子。通过这种方式,您可以维护一个分支理论,并且仍然能够从理论中向上游拉动,以跟上最新的代码库。评论说,这条线可能会有其他不可预见的变化,在学说的行为,所以我认为这是实验性的最好。
//$collection->clear();