3

複数のキーを持つエンティティがあります。複数の ID に基づいて適切なオブジェクトを見つけるにはどうすればよいですか?

$product = $em->getRepository('AcmeStoreBundle:Product')->find($id);
4

2 に答える 2

7

あなたがここで尋ねていることは少し混乱しています。複合キー (主キーは複数の列に関連する) を持つエンティティがあり、主キーの値に基づいてそれを見つけたいと思っているようですね。

その場合、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'));
于 2012-12-11T12:04:37.547 に答える
1

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')
);
于 2012-12-11T11:55:52.323 に答える