Php 与FOSUserBundle的许多学说关系

Php 与FOSUserBundle的许多学说关系,php,symfony,orm,doctrine-orm,doctrine,Php,Symfony,Orm,Doctrine Orm,Doctrine,我想与两个实体建立许多关系: 用户(与FOSUserBundle一起使用) 分类 目前,我在“MyNamespace/Userbundle/Entity/User.php”中这样做: 在“MyNameSpace/WebsiteBundle/Entity/Categorie.php”中: 当我运行用于创建带有reationship的表的命令时,一切都正常 但是当我执行var_转储($this->getUser())时在我的默认控制器(例如)中,有一个无限循环使我的浏览器崩溃。 删除用户实体

我想与两个实体建立许多关系:

  • 用户(与FOSUserBundle一起使用)
  • 分类
目前,我在“MyNamespace/Userbundle/Entity/User.php”中这样做:


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


当我运行用于创建带有reationship的表的命令时,一切都正常

但是当我执行
var_转储($this->getUser())时
在我的默认控制器(例如)中,有一个无限循环使我的浏览器崩溃。 删除用户实体中的关系时,此效果不再出现

那就知道问题出在哪里了

我在ubuntu上使用PHP5.4.9

谢谢:)

使用

条令\Common\Util\Debug::dump()

而不是
var\u dump

-更新- 为什么Debug::dump()有效,而var\u dump无效:


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

谢谢您的回复,这项工作是,我没有无限循环!但是为什么它可以与Doctrine\Common\Util\Debug::dump()一起使用,而不是与经典的var\u dump()一起使用呢?var\u dump是本机php函数,由于存在为多对多关系创建的循环引用,var\u dump无法处理,因此实现了Doctrine\Common\Util\Debug:dump()来处理这种情况
/**
 * @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();
}
/**
 * @ORM\ManyToMany(targetEntity="\MyNameSpace\UserBundle\Entity\User", mappedBy="categories")
 */
 private $users;

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