Symfony,getUser有很多关系太大了

时间:2014-03-31 13:26:28

标签: symfony doctrine

我有一个有许多关系的实体User。接近25 OnetoManyOneToOne和'ManytoMany。

因此,例如,我有一个实体Message,一个实体Comment等......他们甚至还有其他关系。

我的问题,当我尝试在控制器中使用User检索我的$this->getUser()时,我检索所有这些关系...我的对象太大了,我不能以var_dump为例

我不想要,当我getUser()检索他所有的消息,评论等...

你有什么想法吗?

2 个答案:

答案 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