gpt4 book ai didi

php - 未找到 Laravel OrderByRaw 列

转载 作者:行者123 更新时间:2023-11-28 23:39:48 31 4
gpt4 key购买 nike

我在使用 orderByRaw Laravel 时遇到了问题。

数组:

$arr = [H123456, H7654321];

查询:

$ids = implode(',', $arr);
$query = User::whereIn('id', $arr)->isActive()->orderByRaw(DB::raw("FIELD(id,". $ids.")"))->get();

这是原始查询:

"select * from `merchant_heads` where `id` in (?, ?) and `category_id` = ? and `status` = ? order by FIELD(id,Hf561b6fd32aec6ea,H7c81e6fa3f85fc74) limit 10 offset 0"

我已经将其放入我的用户模型中:

public $incrementing = false;

当我执行查询时,它显示 Column not found: 1054 Unknown column 'Hf561b6fd32aec6ea' in 'order clause'

我已经尝试用像 1 这样的单一值来改变 $ids 它起作用了。但如果 ID 是像我这样的字符串,它就不起作用。

有什么解决办法吗?

最佳答案

由于id是字符串,所以需要进行封装。幸运的是,laravel 可以为你做这件事。试试这个:

$ids = implode(',', $arr);
$qs = array_fill(0,count($arr),'?');
$query = User::whereIn('id', $arr)->isActive()->orderByRaw(DB::raw("FIELD(id,". implode(',', $qs).")"),$arr)->get();

关于php - 未找到 Laravel OrderByRaw 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34723942/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com