[英]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時,它與過濾器匹配
什么wheredate
和wherehas
不可以同時運行?
更新
我有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
,而不是or
( and
在laravel查詢生成器中是隱式的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.