Cách đặt hàng kết quả với findBy () trong Học thuyết


147

Tôi đang sử dụng findBy()phương thức trên kho lưu trữ Doctrine:

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

Làm thế nào tôi có thể đặt hàng kết quả?

Câu trả lời:


307

Tham số thứ hai của findBylà cho ĐẶT HÀNG.

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

7
Rõ ràng tài liệu API trên trang web học thuyết không khớp với mã nguồn thực tế. github.com/doctrine/doctrine2/blob/2.4/lib/Doctrine/ORM/ cho thấy bạn đúng.
Patrick James McDougle

Tôi có thể đặt thứ tự đột biến bằng cách không?
Fabien Papet

9
Hơi muộn khi tìm thấy câu hỏi này, nhưng đối với bất kỳ ai khác thắc mắc về vấn đề này, vâng, bạn có thể thêm nhiều "thứ tự theo", chỉ cần thêm nhiều phần tử trong mảng tham số thứ hai đó và xác định tên trường 'ASC' hoặc 'DESC'. IE : array('priority'=>'ASC','id'=>'ASC').
Aaron Belchamber

1
Điều gì xảy ra nếu AcmeBinBundle: Marks có liên quan ManyToOne với "sản phẩm" và chúng tôi muốn đặt hàng theo một trường trong đối tượng sản phẩm? Đây có phải là khả thi?
Rodolfo Velasco

2
@RodolVelasco findByđược sử dụng cho cảnh truy vấn cơ bản, để cảnh phức tạp hơn, hãy sử dụng truy vấn thay thế. như $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'));
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.