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/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();
}