2016-07-05 24 views
6

Tôi có nhiều Things trong AnotherThing bây giờ tôi đang cố gắng đặt hàng trong hành động chỉnh sửa của mình trong AnotherThing Controller - Tôi có thể truy cập vào Things chỉ trong chỉnh sửa của mình, nhưng tôi muốn sắp xếp chúng khác nhau (không phải trên ID của chúng), ví dụ: Things.posĐặt hàng 'Chứa' Mô hình trong CakePHP 3.x

Thực tiễn tốt nhất ở đây là gì? Tôi đã thử nó với

public $hasMany = array(
     'Thing' => array(
      'order' => 'Thing.pos DESC' 
     ) 
    ); 

Nhưng không có gì thay đổi. Bất kỳ ý tưởng?

Trả lời

14

Đã đọc tài liệu. Lấy làm tiếc!

Anyways, Nếu ai đó tìm kiếm một câu trả lời, ở đây nó là: http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#sorting-contained-associations

chỉnh sửa:

Khi tải HasMany và các hiệp hội BelongsToMany, bạn có thể sử dụng tùy chọn sắp xếp để sắp xếp các dữ liệu trong các liên kết đó:

$query->contain([ 
    'Comments' => [ 
     'sort' => ['Comment.created' => 'DESC'] 
    ] 
]); 
1

Nếu bạn đã xác định một số phương pháp tìm kiếm tùy chỉnh trong bảng được liên kết, bạn có thể sử dụng chúng trong số chứa(). Trong trường hợp của bạn, bạn có thể giải quyết vấn đề này như sau:

$query->contain([ 
     'Comments' => function ($q) { 
      return $q->order(['created'=>'DESC']); 
     } 
    ]); 
Các vấn đề liên quan