簡體   English   中英

我可以在Laravel查詢中將`when`與`whereHas`一起使用嗎?

[英]Can I use `when` with `whereHas` in a Laravel query?

我想向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為true,則不返回任何內容。 如果$category為false,則返回全部。 它可以不使用when子句。

這是我的代碼,它正在工作:

return App\Car::with(['user'])
            ->when($_GET['area']>'', function ($query)  
                { $query-> whereHas('user', function($query) { $query->where('area_id', $_GET['area']); }  ); })->get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM