簡體   English   中英

如何同時使用wheredate和wherehas?

[英]How can I use wheredate and wherehas simultaneously?

我的查詢是這樣的:

$search = $request->get('search');
$search_date = $request->get('search_date');
$store = Store::whereDate('updated_at', $search_date)->orWhereHas('user'), function($query) use ($search) {
    $query->where(function ($q) use($search)
    {
        $q->where('name', 'LIKE', '%',$search.'%');
    });
})->paginate(10);

執行后,沒有錯誤。 但是結果與過濾日期不符

當我只使用wheredate而沒有wherehas時,它與過濾器匹配

什么wheredatewherehas不可以同時運行?

更新

我有2個輸入文本,即日期選擇器的輸入文本和搜索名稱的輸入文本。 當用戶想要搜索時,他可以輸入更新的日期和名稱。 然后單擊搜索按鈕。 然后系統會過濾掉它。

您使用了orWhereHas 如果您都想要兩個巡回標准(wheredate和wherehas),則應使用wherehas代替orWhereHas

$store = Store::whereDate('updated_at', $search_date)->whereHas('user'), function($query) use ($search) {
    $query->where(function ($q) use($search) {
        $q->where('name', 'LIKE', '%',$search.'%');
    });
})->paginate(10);

換句話說,如果您需要兩個條件都為true,請使用and ,而不是orand在laravel查詢生成器中是隱式的)

暫無
暫無

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

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