我想在Laravel查询中添加whereHas
,但前提是变量为true。我正在尝试下面没有错误,但在它应该的时候不会返回任何内容。
$assets = Asset::with('media')
->when($category, function ($q) use ($category) {
return $q->whereHas('category', function ($query) use ($category) {
$query->whereId($category);
});
})->offset($offset)->limit($limit)->get();
如果$category
为真,则不返回任何内容。如果$category
为false,则返回all。它没有when
子句。
答案 0 :(得分:1)
这是我的代码,它正在运行:
return App\Car::with(['user'])
->when($_GET['area']>'', function ($query)
{ $query-> whereHas('user', function($query) { $query->where('area_id', $_GET['area']); } ); })->get();