duancong7573 2016-07-25 07:22
浏览 22

$ this-> Paginator-> sort不适用于cakephp 3中的数字

enter image description hereWhen I am using paginator sort in cakephp 3 it is not working properly.It is display the following order

Sno
1
11
13
18
2
25
3
instead of 
Sno
1
2
3
11
13
18
25

My view page code is

           <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>

Can any body please help me. Thanks in advance.

  • 写回答

1条回答 默认 最新

  • drbae3964 2016-07-25 08:19
    关注

    The behavior is perfectly normal because the column type you are using to store your ids is string and not numerical. When ordering strings it happens that 11 comes before 2

    I suggest you to change your schema and switch to a numerical id.

    But if for some reasons you can't do that then you can create a calculated field to store the numeric value

    in your find call in the controller you have to add the field

    ->select(['my_id' => "CAST(REPLACE(id, 'CUS_', '') AS UNSIGNED)"])
    

    and in the view

    <?= $this->Paginator->sort('my_id','Order ID') ?>
    

    remember to add the field to the sortWhitelist

    $this->paginate = [
            'sortWhitelist' => ['my_id']
    ];
    
    评论

报告相同问题?

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加