使用Sonata和MongoDB更新Symfony中的许多引用时出现问题


Problems updating manytomany reference in Symfony with Sonata and MongoDB

我在使用Sonata Admin Bundle使用mongoDB更新Symfony2中从一个集合到另一个集合的引用时遇到了一些问题。

我在用户和他们可以管理的社区之间创建了这个引用。

这是社区级

class Community
{
    /**
     * @MongoDB'ReferenceMany(
     *      targetDocument="User",
     *      inversedBy="communitiesAdmin",
     *  )
     */
    protected $usersAdministrator;

用户中的这个

class User extends BaseUser
{
    /**
     * @MongoDB'ReferenceMany(
     *      targetDocument="Community",
     *      mappedBy="usersAdministrator",
     * )
     */
    protected $communitiesAdmin;

这就是我在索纳塔中展示场地的方式

    $formMapper
        ->with('Community Administrators')
            ->add('usersAdministrator', 'sonata_type_model', array('expanded' => true))
        ->end()

当我在MongoHub中跟踪集合时,正在创建引用,但我无法更新它,因为在编辑社区时,以前插入的数据不会显示。

知道吗?

用修复

public function addVideo($video)
{
    $this->videos[] = $video;
    $video->addArtist($this); << This makes doctrine handle the bi direction
}

在管理员中:

        ->add('videos', 'sonata_type_model', array(
            'required' => false,
            'multiple' => true,
            'by_reference' => false
        ))

by_reference=FALSE真的很重要!