[英]CakePHP sort by one column then another column
在CakePHP中有沒有按多列排序分頁? 我有這個代碼
$this->paginate = array(
'Project' => array(
'limit' => $limit,
'fields' => array(
'DISTINCT (Project.id) AS id',
'Project.project_type_id',
'Project.contact_id',
'Project.company_id',
'Project.due_date',
'Project.subject',
'Project.description',
'Project.created',
'Project.creator',
'Project.project_status_id',
'Project.modified',
'Project.complete_date',
),
'joins' => array(
array(
'table' => 'project_reminder_users',
'alias' => 'ProjectReminderUser',
'type' => 'left',
'conditions' => array(
'Project.id=ProjectReminderUser.project_id',
),
),
),
'conditions' => array(
'User.group_id' => $this->Session->read('Auth.User.group_id'),
'Project.creator' => $this->Session->read('Auth.User.id'),
),
'order' => 'Project.project_status_id',
)
);
$this->set('groupTasks', $this->paginate('Project'));
並且它將產生類似於Project.project_status_id的順序
Task Name | Due Date | Status |
Task 1 | - | Open |
Task 2 | 2/15/2014 | Open |
Task 3 | 2/28/2014 | Open |
Task 4 | 2/20/2014 | Open |
Task 5 | - | Open |
Task 6 | - | Open |
Task 7 | - | Closed |
Task 8 | - | Closed |
無論如何它是這樣它可以按狀態排序,然后到期日,所以它看起來像這樣
Task Name | Due Date | Status |
Task 1 | - | Open |
Task 5 | - | Open |
Task 6 | - | Open |
Task 2 | 2/15/2014 | Open |
Task 4 | 2/20/2014 | Open |
Task 3 | 2/28/2014 | Open |
Task 7 | - | Closed |
Task 8 | - | Closed |
也許在那之后按任務名稱排序..
謝謝
嘗試這個:
'order' => array(
'first_field' => 'DESC',
'second_field' => 'ASC'
)
如果您使用html表來呈現結果。 然后,為了實現所述功能,一種可能的解決方案是在列標題的點擊上發送ajax請求。 在控制器中,您可以將先前請求的已排序列保存到ajax中。 在下一個排序請求期間,檢查是否收到任何其他先前的排序請求。
如果您可以使用jquery插件, 此鏈接將幫助您對多列進行排序。
輕松插入'paramType'=>'querystring',顯示代碼示例:
$this->paginate = array(
'conditions' => $conditions,
'order' => array(
'Post.name' => 'ASC',
'Post.created' => 'DESC',
),
'paramType' => 'querystring',
);
$this->set('posts', $this->paginate('Post'));
Saludos :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.