我有一个有许多关系的实体User
。接近25 OnetoMany
,OneToOne
和'ManytoMany。
因此,例如,我有一个实体Message
,一个实体Comment
等......他们甚至还有其他关系。
我的问题,当我尝试在控制器中使用User
检索我的$this->getUser()
时,我检索所有这些关系...我的对象太大了,我不能以var_dump为例
我不想要,当我getUser()
检索他所有的消息,评论等...
你有什么想法吗?
答案 0 :(得分:0)
默认情况下,除非您阅读该关联,否则不会加载关联。
问题是你无法使用var_dump()
调试教条对象。
您应该使用:
\Doctrine\Common\Util\Debug::dump($doctrine_obj);
答案 1 :(得分:0)
您可以更改关系的fetch
模式,例如,使用注释:
/**
* @ORM\ManyToMany(targetEntity="Comment", fetch="LAZY")
*/
protected $comments;
/**
* @ORM\ManyToMany(targetEntity="AnotherRelation", fetch="EAGER")
*/
protected $anotherRelation;
/**
* @ORM\ManyToMany(targetEntity="Example", fetch="EXTRA_LAZY")
*/
protected $example;
使用EXTRA_LAZY
只会将字段设置为null
,我认为这就是您要查找的内容。这也适用于树中所有关系的递归工作。
更多信息:http://doctrine-orm.readthedocs.org/en/latest/tutorials/extra-lazy-associations.html