2

CollarとOneToOneの関係を持つエンティティDogがあります。

新しいDogエンティティを作成し、それに関連付けたいCollarIDを持っているとします。Collarオブジェクト自体ではなく、ID番号のみです。

$collar = 12;
$dog = new Dog();
$dog->setCollar(?);

DBから実際にCollarオブジェクトをフェッチして、そのID(既に指定されている)を設定する必要がありますか、それともプロキシCollarオブジェクトを作成する方法がありますか?

4

1 に答える 1

4

はい、実際にあります

エンティティマネージャを使用して、データベースから実際にフェッチせずにエンティティを表すプロキシオブジェクトを提供する実際のエンティティの代わりに、プロキシ参照を取得できます。

例については、以下のコードを確認してください

$collarId = 12;

// First param is the Entity classname, second is the Entity id
$collar = $entityManager->getReference('Collar', $collarId); 

$dog = new Dog();
$dog->setCollar($colar);

$entityManager->persist($dog);
$entityManager->flush();
于 2013-03-15T16:19:04.993 に答える