当我在cakephp 3中使用paginator sort时,它无法正常工作。它显示以下顺序
Sno
1
11
13
18
2
25
3
instead of
Sno
1
2
3
11
13
18
25
我的观看页面代码是
<th> <?= $this->Paginator->sort('Sno') ?></th>
<th><?= $this->Paginator->sort('id','Order ID') ?></th>
<th><?= $this->Paginator->sort('user_id','Cust ID') ?> </th>
<th><?= $this->Paginator->sort('first_name','Cust Name') ?></th>
<th><?= $this->Paginator->sort('created_date','Date') ?></th>
<th><?= $this->Paginator->sort('order_qty','Order Qty') ?></th>
任何人都可以帮助我。 提前谢谢。
答案 0 :(得分:0)
行为完全正常,因为用于存储id的列类型是字符串而不是数字。订购字符串时,11
2
我建议您更改架构并切换到数字ID。
但是如果由于某些原因你不能这样做,那么你可以创建一个计算字段来存储数值
在控制器中的查找调用中,您必须添加字段
->select(['my_id' => "CAST(REPLACE(id, 'CUS_', '') AS UNSIGNED)"])
并在视图中
<?= $this->Paginator->sort('my_id','Order ID') ?>
请记住将该字段添加到sortWhitelist
$this->paginate = [
'sortWhitelist' => ['my_id']
];