2010-06-27 40 views
5

Khi tôi tìm kiếm một mô hình "có nhiều" thứ khác.CakePHP, đặt hàng các bảng được liên kết

Ví dụ: bài đăng trên blog có nhiều danh mục.

Khi tìm kiếm bài đăng trên blog có danh mục được liên kết, làm cách nào để đặt hàng các danh mục được liên kết? Khi mảng được trả về, nó bỏ qua thứ tự trên mô hình danh mục và mặc định là thứ tự id thông thường.

Chúc mừng.

Trả lời

22

Bên cạnh đó bạn có thể thiết lập trật tự trong mối quan hệ của mô hình của bạn.

<?php 
class Post extends AppModel { 
    var $hasMany = array(
    'Category' => array(
     'className' => 'Category', 
     ... 
     'order' => 'Category.name DESC', 
     .... 
    ), 
}?> 
+0

Cảm ơn bạn rất nhiều! – Vicer

0

Bạn có thể chỉ định thuộc tính order của thông số phương pháp find. Nếu không, nó sẽ mặc định theo thứ tự cho mô hình trên cùng/cha/mẹ. Trong trường hợp của bạn là Category.id.

+0

Mô hình liên quan được đặt trên mô hình riêng của mình, bạn có thêm nơi nó nó tìm thấy khi bạn nhận được liên quan đến 'có nhiều 'trên một mô hình? – Smickie

+0

Đăng mã mà bạn đang sử dụng để truy xuất dữ liệu mô hình của bạn hoặc xem http://book.cakephp.org/view/1018/find. Tôi tin rằng bạn muốn đặt tham số 'order'. –

+0

Mối quan hệ hasMany ngụ ý 2 truy vấn riêng biệt - khi bạn đặt thuộc tính thứ tự trên phương thức tìm, bạn gặp lỗi vì mô hình được liên kết không được bao gồm trong truy vấn ban đầu và do đó 'không tồn tại'. –

3

trong cakephp 3 sử dụng 'sắp xếp' thay vì 'trật tự':

<?php 
class Post extends AppModel { 
    var $hasMany = array(
    'Category' => array(
     'className' => 'Category', 
     ... 
     'sort' => 'Category.name DESC', 
     .... 
    ), 
}?> 
Các vấn đề liên quan