1 回答

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
您獲得代理對(duì)象是因?yàn)樗鼈兪茄舆t加載的,這是正確的。您不應(yīng)該對(duì)它們有任何問題,因?yàn)楫?dāng)您迭代集合時(shí),所有數(shù)據(jù)都應(yīng)該正確設(shè)置。代理通常表現(xiàn)得像完全加載的實(shí)體。如果您遇到問題,也許問題出在其他地方。EAGER但是,您可以在關(guān)系中設(shè)置 fetch to來強(qiáng)制構(gòu)建完整的實(shí)體。
@ManyToOne(targetEntity="target", fetch="EAGER")
@JoinColumn(name="target", referencedColumnName="id")
此外,您還可以使用$query->getResult(Doctrine\ORM\Query::HYDRATE_ARRAY);水合查詢中的所有對(duì)象。你也可以嘗試一下$queryBuilder->getQuery()->setHint (Query::HINT_FORCE_PARTIAL_LOAD, true)->get();
您也可以在迭代過程中自行加載代理對(duì)象。類似的東西
foreach($collection as $object) {
if ($object instanceof Doctrine\ORM\Proxy\Proxy) {
$object->__load();
}
}
但是,您可以發(fā)布您的代碼(實(shí)體、存儲(chǔ)庫中的查詢和視圖部分),因?yàn)榇聿粦?yīng)該有任何問題。
- 1 回答
- 0 關(guān)注
- 105 瀏覽
添加回答
舉報(bào)