ManyToMany与FOSUserBundle的学说关系

时间:2014-04-06 13:19:46

标签: php symfony orm doctrine-orm doctrine

我想与ManyToMany建立两个实体的关系:

  • 用户(与FOSUserBundle一起使用)
  • Categorie

目前,我在“MyNamespace / Userbundle / Entity / User.php”中执行此操作:

/**
 * @ORM\ManyToMany(targetEntity="\MyNamespace\WebsiteBundle\Entity\Categorie", inversedBy="users")
 * @ORM\JoinTable(name="user_has_categories")
 */
private $categories;

public function __construct()
{
    parent::__construct();
    $this->categories = new \Doctrine\Common\Collections\ArrayCollection();
}

这在“MyNameSpace / WebsiteBundle / Entity / Categorie.php”中:

/**
 * @ORM\ManyToMany(targetEntity="\MyNameSpace\UserBundle\Entity\User", mappedBy="categories")
 */
 private $users;

 public function __construct()
 {
   $this->users = new \Doctrine\Common\Collections\ArrayCollection();
 }

当我运行doctrine命令创建带有reationship的表时,一切正常。

但是当我在默认控制器中执行var_dump($this->getUser());时(例如),我有一个无限循环会导致我的浏览器崩溃。 当我删除用户实体中的关系时,不再显示此效果...

那会有一个想法,这个问题可能是什么?

我在ubuntu上使用php 5.4.9

谢谢:)

1 个答案:

答案 0 :(得分:3)

使用

  

学说\共同\的Util \调试::转储()

而不是var_dump

- 更新 -

为什么 Debug :: dump()有效,但var_dump没有:

Doctrine \ Common \ Util \ Debug :: dump()接受第二个参数 maxDepth ,默认值为2,将嵌套引用限制为两个级别。您可以根据需要传递此值。