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();
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » ThinkPHP5 中 order 排序使用 SQL 函数提示不支持的表达式的解决方案
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » ThinkPHP5 中 order 排序使用 SQL 函数提示不支持的表达式的解决方案