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);
希望这会有所帮助
我使用 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);
希望这会有所帮助