2

外部キー (user_id と teacher_id) である 2 つのフィールドを持つテーブル オブジェクトがあります。X テーブルのエンティティを生成した後、エンティティには $user プロパティと $teacher プロパティしか含まれていないため、ID の代わりに関連付けられたオブジェクトを使用する必要があります。したがって、次のようにする代わりに、オブジェクトの user_id と teacher_id を知っているとします。

$object->setUserId(1)

私がしなければなりません:

$user = $this->getDoctrine()->getRepository('MyBundle:Users')->find(2);
$object->setUser($user)

各 ID に関連付けられたオブジェクト全体を取得することを避けるために、ID を直接操作する方法はありませんか?

4

1 に答える 1

5

フレームワークは、関連付け値を設定するときにオブジェクトを使用することを提案します。まだ – レコードがまだメモリにロードされていないことを確認しますか? そうであれば、追加の SQL ステートメントの実行は発生しません。

オブジェクトをロードせずに関連付けを更新する必要がある場合は、

  • ネイティブ SQL を実行します。
  • Doctrine Proxy オブジェクトを手動で作成し、代わりに設定してみてください。

EntityManagerメソッドを使用してプロキシ オブジェクトを取得できますgetReference

$object->setUser($this->getDoctrine()->getReference('MyBundle:Users', 2));
于 2012-10-22T11:15:39.390 に答える