ThinkPHP5 中 order 排序使用 SQL 函数提示不支持的表达式的解决方案
admin 阅读:20 2024-03-01
ThinkPHP 5.0 升级到最新的 5.0.24 版本后,程序报错,经检查是 order 排序报错:不支持的表达式。错误代码如下:
$users = $exam->users()->where('user_id','in',$uids)->order('(score+rapscore+rescore)','desc')->select();
而未升级之前,上述代码是可以正常运行的,因此查看了下官方的版本升级说明,手册中有一句说明:
V5.0.17+
版本开始,当你的order排序中使用了SQL函数的时候,请使用orderRaw
方法替代order
,例如:
因此将上述代码改为以下方式即可:
$users = $exam->users()->where('user_id','in',$uids)->orderRaw('(score+rapscore+rescore) desc')->select();
声明
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!