【发布时间】:2017-07-05 21:54:44
【问题描述】:
我正在按开始和结束日期或工作日进行搜索,哪种工作正常,但是如果工作日等于“WE”并且今天的工作日等于“WE”,即使 $today 日期为
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'));
}
如果我改变 orWhere to where,结果都很好,但是用户并不总是输入工作日,所以它可能是空的。我希望它像这样工作:
输出 startdate 今天的所有内容,如果 weekday 不为空,则输出 startdate today 和 weekday = $weekday 的所有内容。我希望这是有道理的。
//编辑
样本数据:
所以我真正想要的是按频率搜索,所以它看起来像这样:
如果频率 = 每天 将开始和结束与今天的日期进行比较。 如果频率 = 每周 将 start 和 end 与今天的日期和工作日进行比较。
返回频率 = 每天+每周的所有结果
【问题讨论】:
标签: laravel laravel-5 eloquent