我试图在Eloquent查询中执行IN语句。我试过这个:
$id = urldecode($id);
$news = News::whereHas('newsCategories', function($q) use($id)
{
$q->where('category_id', 'IN', '('.$id.')')->orderBy('created_at', 'desc');
})->get();
但我得到空洞的结果。
当我为IN
切换=
并传递数字而不是数组时,我会得到结果。我做错了吗?
这样可行:
$id = 2;
$news = News::whereHas('newsCategories', function($q) use($id)
{
$q->where('category_id', '=', $id)->orderBy('created_at', 'desc');
})->get();
答案 0 :(得分:7)
您希望{id} whereIn
与您的ID数组进行检查...
$news = News::whereHas('newsCategories', function($q) use($array_of_ids)
{
$q->whereIn('category_id', $array_of_ids)
->orderBy('created_at', 'desc');
})->get();
确保你传递的是真正的数组:)