订单不适用于 sortWhitelist
order not working with sortWhitelist
使用 CakePHP 3.5.3
嗨,
下面的代码可以正常工作并显示结果集并按 due_date asc 排序。
public $paginate = [
'limit' => 5,
'order' => [
'Activities.due_date' => 'asc'
]
];
public function index()
{
$session = $this->request->session();
// Declare client id 1
$cidOne = null;
$cidOne = $session->read('Cid.one');
// NOTE* DON'T USE ORDER HERE BECAUSE THE SORTS WILL NOT WORK
$query = $this->Activities->find('all')
->where(['cid_1' => $cidOne])
->andWhere(['status' => 1]);
// Send the query to the view.
$this->set('activities', $this->paginate($query));
}
但是当我如下添加 sortWhitelist 时,初始页面加载未按 due_date 排序并且不显示排序箭头。
public $paginate = [
'sortWhitelist' => [
'due_date', 'related_to', 'subject', 'post_code', 'type', 'priority'
],
'limit' => 5,
'order' => [
'Activities.due_date' => 'asc'
]
];
感谢您的帮助。 Z.
sortWhitelist数组、order数组和paginator之间必须保持一致link
因此,如果您的字段是 Activities.due_date
,您的代码将变为:
public $paginate = [
'sortWhitelist' => [
'Activities.due_date', 'related_to', 'subject', 'post_code', 'type', 'priority'
],
'limit' => 5,
'order' => [
'Activities.due_date' => 'asc'
]
];
在你看来
<?= $this->Paginator->sort('Activities.due_date', __('Due Date')) ?>
如果字段名称没有歧义,您可以省略模型名称并简单地使用 due_date
作为列名称
使用 CakePHP 3.5.3
嗨,
下面的代码可以正常工作并显示结果集并按 due_date asc 排序。
public $paginate = [
'limit' => 5,
'order' => [
'Activities.due_date' => 'asc'
]
];
public function index()
{
$session = $this->request->session();
// Declare client id 1
$cidOne = null;
$cidOne = $session->read('Cid.one');
// NOTE* DON'T USE ORDER HERE BECAUSE THE SORTS WILL NOT WORK
$query = $this->Activities->find('all')
->where(['cid_1' => $cidOne])
->andWhere(['status' => 1]);
// Send the query to the view.
$this->set('activities', $this->paginate($query));
}
但是当我如下添加 sortWhitelist 时,初始页面加载未按 due_date 排序并且不显示排序箭头。
public $paginate = [
'sortWhitelist' => [
'due_date', 'related_to', 'subject', 'post_code', 'type', 'priority'
],
'limit' => 5,
'order' => [
'Activities.due_date' => 'asc'
]
];
感谢您的帮助。 Z.
sortWhitelist数组、order数组和paginator之间必须保持一致link
因此,如果您的字段是 Activities.due_date
,您的代码将变为:
public $paginate = [
'sortWhitelist' => [
'Activities.due_date', 'related_to', 'subject', 'post_code', 'type', 'priority'
],
'limit' => 5,
'order' => [
'Activities.due_date' => 'asc'
]
];
在你看来
<?= $this->Paginator->sort('Activities.due_date', __('Due Date')) ?>
如果字段名称没有歧义,您可以省略模型名称并简单地使用 due_date
作为列名称