วิธีการเรียงลำดับผลลัพธ์ด้วย findBy () ใน Doctrine


147

ฉันกำลังใช้findBy()วิธีการในพื้นที่เก็บข้อมูลหลักคำสอน:

$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

ฉันสามารถตั้งค่าคำสั่ง mutliple ด้วยได้หรือไม่
Fabien Papet

9
การค้นหาคำถามนี้ล่าช้าเล็กน้อย แต่สำหรับคนอื่นที่สงสัยเกี่ยวกับเรื่องนี้ใช่คุณสามารถเพิ่ม "เรียงลำดับตาม" ได้หลายรายการเพียงแค่เพิ่มองค์ประกอบเพิ่มเติมในอาร์เรย์พารามิเตอร์ที่สองนั้นและกำหนดชื่อฟิลด์ 'ASC' หรือ 'DESC' array('priority'=>'ASC','id'=>'ASC')IE:
แอรอน Belchamber

1
จะเกิดอะไรขึ้นถ้า AcmeBinBundle: เครื่องหมายเกี่ยวข้องกับ ManyToOne กับ "ผลิตภัณฑ์" และเราต้องการสั่งซื้อจากฟิลด์ในวัตถุผลิตภัณฑ์? เป็นไปได้หรือไม่
Rodolfo Velasco

2
@RodolVelasco findByใช้สำหรับฉากคิวรีพื้นฐานสำหรับฉากที่ซับซ้อนยิ่งขึ้นให้ใช้คิวรีแทน $qb = $em->getRepository('AcmeBinBundle:Marks')->createQueryBuilder('m')->...เช่น
xdazz


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.