Doctrine에서 findBy ()로 결과를 주문하는 방법


147

findBy()Doctrine 저장소 에서 메소드를 사용하고 있습니다 .

$entities = $repository->findBy(array('type'=> 'C12'));

결과를 어떻게 주문할 수 있습니까?

답변:


307

의 두 번째 매개 변수 findBy는 ORDER입니다.

$ens = $em->getRepository('AcmeBinBundle:Marks')
          ->findBy(
             array('type'=> 'C12'), 
             array('id' => 'ASC')
           );

7
교리 웹 사이트의 API 문서가 실제 소스 코드와 일치하지 않는 것 같습니다. github.com/doctrine/doctrine2/blob/2.4/lib/Doctrine/ORM/… 은 당신이 옳다는 것을 보여줍니다.
Patrick James McDougle

으로 여러 순서를 설정할 수 있습니까?
Fabien Papet

9
이 질문을 발견하는 데 조금 늦었지만 다른 궁금한 점이 있으시면 여러 "순서 기준"을 추가하고 두 번째 매개 변수 배열에 더 많은 요소를 추가하고 필드 이름 'ASC'또는 'DESC'를 정의하면됩니다. IE : array('priority'=>'ASC','id'=>'ASC').
아론 Belchamber

1
AcmeBinBundle : Marks가 ManyToOne과 "product"와 관련이 있고 제품 ​​객체의 필드별로 주문하려면 어떻게해야합니까? 이것이 가능한가?
Rodolfo Velasco

2
@RodolVelasco findBy는 기본 쿼리 장면에 사용되며 더 복잡한 장면에는 query를 대신 사용하십시오. 처럼 $qb = $em->getRepository('AcmeBinBundle:Marks')->createQueryBuilder('m')->....
xdazz

25
$ens = $em->getRepository('AcmeBinBundle:Marks')
              ->findBy(
                 array(), 
                 array('id' => 'ASC')
               );

10
$cRepo = $em->getRepository('KaleLocationBundle:Country');

// Leave the first array blank
$countries = $cRepo->findBy(array(), array('name'=>'asc'));
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.