2011-07-26 17 views
9

こんにちは私は簡単な作業と思っていたものに問題があります。関連付けられたオブジェクトをロードせずにDoctrine 2で外部キーIDを関連付ける方法はありますか?

私はデータベースから投稿を取得しています。 Postエンティティには、Userエンティティに関連付けられたcreatedByフィールドがあります。

私がしたいのは、PostとUserに2つの別々のクエリ(結合なし)を読み込むことです。つまり、$ postオブジェクトのcreated_by外部キー整数にアクセスする必要があります。 Doctrineはそれをまったく公開していないようです。投稿のvar_dumpはcreatedBy => nullを示します。投稿のクエリcreatedBy => Userオブジェクトに直接参加するとします。私はユーザーのために問い合わせることができますので、投稿からcreated_by外部キーの整数を取得する方法はありますか?クエリの

おかげ

答えて

19

使用これを:

$q->setHint(\Doctrine\ORM\Query::HINT_INCLUDE_META_COLUMNS, true); 
$q->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY); 

水和が無効になっているので、あなたは、配列のように、あなたの結果を持っています。

+0

素晴らしいです。そのヒントについては知らなかったしかし、クエリオブジェクトにはsetHydrateメソッドがないようです。あなたは配列としてそれを水和することができ、それは動作します(そして、あなたはまだうまく水和した結果を得ます)。 $ q-> getResult(\ Doctrine \ ORM \ Query :: HYDRATE_ARRAY);あなたの答えを更新するなら、私はそれを受け入れるでしょう。ありがとう! – Marc

+0

はい、そうです。 setHydrateはMongoDB ODM用です。 – Maxence

+0

私は実際にMongoDB ODMに試してみることにしました。そのことを念頭に置いておきます。ありがとう! – Marc

関連する問題