Laravel 4.2 检查 whereIn 子句中的数组是否为空

Laravel 4.2 check array is empty in whereIn clause

我使用 elequent 进行查询 我对 whereIn 子句有疑问,如果数组为空,则不会 return 结果:

$idsUsers = empty(json_decode($data["idsUsers"])) ? null : json_decode($data["idsUsers"]);
$articles = DB::table('articles')
        ->whereIn('user_id',$idsUsers)
        ->orderBy('created_at','desc')
        ->paginate(10);

我如何在 whereIn 方法中使用我的数组来检查它是否为空或 null

尝试使用条件:

$articles = DB::table('articles')->orderBy('created_at','desc');

if (!empty($idsUsers)) {
    $articles = $articles->whereIn('user_id', $idsUsers);
}

$articles = $articles->paginate(10);

你可以试试这个

$idsUsers = empty(json_decode($data["idsUsers"])) ? null : json_decode($data["idsUsers"]);

$articles = DB::table('articles')
              ->where(function($query) use ($idsUsers){
                if(count($idsUsers))
                {
                  $query->whereIn('user_id',$idsUsers);
                }
              })->orderBy('created_at','desc')->paginate(10);

希望这会有所帮助