以下是我查詢兩個日期之間的資料的部分內容:
->whereDate('fixture_date', '>=', Carbon: :now()->subDays($pastDays))
->whereDate('fixture_date', '<=', Carbon::now()-> addDays($futureDays)
->當(request('search'), function ($query) {
$query->orWhere('fixture_hometeam_name'/span>, 'LIKE'/span>, '%'/span> . request('search') . '%')
->或Where('fixture_awayteam_name', 'LIKE', '%' . request('search') . '%')。)
})
當request('search')為空時,我得到了預期的結果,但當不為空時,whereDate查詢就不作業了。
應該如何修改以獲得正確的結果呢?
uj5u.com熱心網友回復:
添加另一層,在搜索的orWhere周圍添加括號。
->whereDate('fixture_date', '>=', Carbon: :now()->subDays($pastDays))
->whereDate('fixture_date', '<=', Carbon::now()-> addDays($futureDays)
->當(request('search'), function ($query) {
$query->where(function($subQuery>>) {
$subQuery->orWhere('fixture_hometeam_name'/span>, 'LIKE'/span>, '%'/span> . request('search') . '%')
->或Where('fixture_awayteam_name', 'LIKE', '%' . request('search') . '%')。)
})
})
uj5u.com熱心網友回復:
你可以用whereBetween代替兩個whereDate。
->whereBetween('fixture_date', [
now()->subDays($pastDays)->startOfDay(), now()->addDays($futureDays)->endOfDay()
])->當($request-> search, function ($query, $search) {
return $query-> where(function ($query) 變數">$query) use ($search) {
$query-> where('fixture_hometeam_name', 'like', "%{$search}%")
->或Where('fixture_awayteam_name', 'like', "%{$search}%")。
});
https://laravel.com/docs/8.x/queries#logical-grouping
您應該始終將
orWhere呼叫分組,以避免在應用全域作用域時出現意外行為。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/307822.html
標籤:
