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方法。当提供的字段组合不是唯一的时,这将很有用,因为您可以提供第二个参数来定义排序。

$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 回答