[英]Query Laravel Select WhereIn Array
This query does not work correctly, it only shows 1 row 此查询无法正常工作,它只显示1行
$data = Post::select('id', 'name')
->whereIn('id', [$order])
->orderByRaw(\DB::raw("FIELD(id, $order)"))
->get();
but this works fine, it shows all rows 但这很好,它显示所有行
$data = Post::select('id', 'name')
->whereIn('id', [1,2,3])
->orderByRaw(\DB::raw("FIELD(id, $order)"))
->get();
Thank you! 谢谢!
Your Query is Here:- 您的查询在这里: -
$data = Post::select('id', 'name')
->whereIn('id', $order)
->orderByRaw(\DB::raw("FIELD(id, ".implode(",",$order).")"))
->get();
Remove []
from $order
. 从
$order
删除[]
。
For WhereIn
condition second parameter should be an array. 对于
WhereIn
条件,第二个参数应该是一个数组。 So the $order
should be 所以
$order
应该是
$order = [1,2,3,4]
If your $order
is an array, i think that you should do this 如果你的
$order
是一个数组,我认为你应该这样做
whereIn('id', $order)
instead of whereIn('id', [$order])
whereIn('id', $order)
而不是whereIn('id', [$order])
PS In official documentation mentioned that second argument should be an array: PS在官方文档中提到第二个参数应该是一个数组:
$users = DB::table('users')
->whereIn('id', [1, 2, 3])
->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.