简体   繁体   English

查询Laravel选择WhereIn数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM