複数のキーを持つエンティティがあります。複数の ID に基づいて適切なオブジェクトを見つけるにはどうすればよいですか?
$product = $em->getRepository('AcmeStoreBundle:Product')->find($id);
複数のキーを持つエンティティがあります。複数の ID に基づいて適切なオブジェクトを見つけるにはどうすればよいですか?
$product = $em->getRepository('AcmeStoreBundle:Product')->find($id);
あなたがここで尋ねていることは少し混乱しています。複合キー (主キーは複数の列に関連する) を持つエンティティがあり、主キーの値に基づいてそれを見つけたいと思っているようですね。
その場合、find
メソッドには、キーを構成する各フィールドの値を含む配列が必要になります。
$product = $em->getRepository('AcmeStoreBundle:Product')->find(array(
'key1' => 'value1',
'key2' => 'value2'
));
または、メソッドを使用することもできますfindOneBy
。これは、順序を定義する 2 番目の引数を提供できるため、提供されたフィールドの組み合わせが一意でない場合に役立ちます。
$product = $em->getRepository('AcmeStoreBundle:Product')->findOneBy(array(
'key1' => 'value1',
'key2' => 'value2'
), array('updated_at' => 'DESC'));
http://symfony.com/doc/2.0/book/doctrine.html#fetching-objects-from-the-databaseを参照してください
$product = $em->getRepository('AcmeStoreBundle:Product')->findBy(
array('key1' => 'value1', 'key2'=>'value2')
);