2014-03-31 68 views
0

我有一個實體User有很多關係。大約25 OnetoMany,OneToOne和ManytoMany。Symfony,getUser與很多關係太大

因此,例如,我有一個實體Message,實體Comment等......他們甚至有其他關係。

我的問題是,當我嘗試在控制器中檢索User$this->getUser()時,我檢索了所有這些關係......我的對象太大了,例如我無法使用var_dump。

我不希望,當我這樣做getUser()檢索所有他的消息,評論等..

你有什麼想法?

回答

0

默認情況下,關聯不會被加載,除非您閱讀它。

問題是你不能使用var_dump()來調試一個原則對象。

你應該使用:

\Doctrine\Common\Util\Debug::dump($doctrine_obj); 
+0

我不xant調試,我希望有一個輕的物體,沒有他的所有關係 –

+0

@ClémentAndraud什麼獲取鍵入您定義? – xdazz

+0

獲取類型? –

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