我在开始和结束日期或工作日搜索,但是如果工作日等于'WE'并且今天的工作日等于'WE'它仍然会带来结果,即使$ today date是<而不是结束。
public function show($id)
{
$weekMap = [
0 => 'SU',
1 => 'MO',
2 => 'TU',
3 => 'WE',
4 => 'TH',
5 => 'FR',
6 => 'SA',
];
$todayWeek = Carbon::now()->dayOfWeek;
$today= Carbon::now();
$weekday = $weekMap[$todayWeek];
$event = Event::with('businesses')
->where('startdate', '<', $today->format('Y-m-d'))
->where('endate', '>', $today->format('Y-m-d'))
->orWhere('weekday', '=', $weekday)
->get();
dd($event);
return view('events.showEvent', compact('event'));
}
如果我改变或者在哪里,结果都是好的,但是用户并不总是进入工作日,所以它可以是空的。我希望它能像这样工作:
输出startdate&lt;的所有内容今天和哪里结束&gt;今天如果工作日不为空,输出startdate&lt;今天,结束&gt;今天和工作日= $工作日。我希望这是有道理的。
//修改
示例数据:
所以我想要的是按频率搜索所以它看起来像这样:
如果频率=每日 将开始和结束与今天的日期进行比较。 如果频率=每周 将开始和结束与今天的日期和工作日进行比较。
带回频率=每日+每周
的所有结果答案 0 :(得分:0)
您可以在查询中使用if条件,如下所示:
Thumb
也
条件ListView
检查$query = Event::with('businesses')
->where('startdate', '<', $today->format('Y-m-d'))
->where('endate', '>', $today->format('Y-m-d'));
if ($weekday != '') {
$query->where('weekday', $weekday);
}
$event = $query->get();
是否可以使用
if ($weekday != '')
而不是