Mac*_*ski 11 php many-to-many doctrine-orm
我遇到了许多自我引用关系的问题.我收到错误:
在链配置的命名空间中找不到类"Doctrine\ORM\Persisters\ManyToManyPersister"
当我删除与他们一起保存的所有子表单项时,会发生这种情 至少留下一个不会发生错误.此外,如果我最初保存没有孩子的实体一切正常.
/**
* West\AlbumBundle\Entity\Album
*
* @ORM\Table(name="albums")
* @ORM\Entity(repositoryClass="West\AlbumBundle\Entity\AlbumRepository")
* @ORM\HasLifecycleCallbacks
*/
class Album extends Entity implements CrudEntity
{
/**
* @ORM\ManyToMany(targetEntity="Album")
* @ORM\JoinTable(name="albums_relations",
* joinColumns={@ORM\JoinColumn(name="album_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="related_album_id", referencedColumnName="id")}
* )
* @var ArrayCollection
*/
protected $related_albums;
}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用Symfony2表单进行测试,请记住设置
"by_reference"=> false
我发现当调用方法UnitOfWork.scheduleCollectionDeletion时会发生问题,例如,从MergeDoctrineCollectionListener.onBind()调用并且PersistentCollection对象已被克隆( 'by_reference' = false )
解决此问题的一个快速方法是在MergeDoctrineCollectionListener类中注释以下行:
//$collection->clear();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2247 次 |
| 最近记录: |