Symfony - 获取具有多个ID的实体存储库

cli*_*uke 3 symfony doctrine-orm

我有一个有多个键的实体,我如何根据多个ID找到合适的对象?

$product = $em->getRepository('AcmeStoreBundle:Product')->find($id);
Run Code Online (Sandbox Code Playgroud)

Rob*_*ers 7

你在这里问的问题有点令人困惑.听起来好像你有一个带有复合键的实体(主键与多列相关),并希望根据它的主键值找到它,是吗?

如果是这样,该find方法将需要一个包含组成键的每个字段的值的数组:

$product = $em->getRepository('AcmeStoreBundle:Product')->find(array(
    'key1' => 'value1', 
    'key2' => 'value2'
));
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用findOneBy方法.当提供的字段组合不唯一时,这将非常有用,因为您可以提供第二个参数来定义排序.

$product = $em->getRepository('AcmeStoreBundle:Product')->findOneBy(array(
    'key1' => 'value1', 
    'key2' => 'value2'
), array('updated_at' => 'DESC'));
Run Code Online (Sandbox Code Playgroud)