Laravel碳检索记录,即使它不应该';T
我正在按开始日期和结束日期或工作日进行搜索,哪种工作方式很好。但是,如果工作日等于“WE”,而今天的工作日等于“WE”,即使$today dateLaravel碳检索记录,即使它不应该';T,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我正在按开始日期和结束日期或工作日进行搜索,哪种工作方式很好。但是,如果工作日等于“WE”,而今天的工作日等于“WE”,即使$today date“SU”, 1=>“MO”, 2=>“TU”, 3=>“我们”, 4=>“TH”, 5=>“FR”, 6=>“SA”, ]; $todayWeek=Carbon::now()->dayOfWeek; $today=碳::now(); $weekday=$weekMap[$todayWeek]; $event=event::with('business'
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'));
}
公共功能显示($id)
{
$weekMap=[
0=>“SU”,
1=>“MO”,
2=>“TU”,
3=>“我们”,
4=>“TH”,
5=>“FR”,
6=>“SA”,
];
$todayWeek=Carbon::now()->dayOfWeek;
$today=碳::now();
$weekday=$weekMap[$todayWeek];
$event=event::with('business')
->其中('startdate',''$today->格式('Y-m-d'))
->或其中('weekday','=',$weekday)
->get();
dd($事件);
返回视图('events.showEvent',压缩('event');
}
若我把where改为where,结果都很好,但用户并不总是输入一个工作日,所以它可以是空的。我希望它能像这样工作:
$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();
在startdate$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条件:
$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();
$query=Event::with('businesss')
->其中('startdate',''$today->格式('Y-m-d');
如果($weekday!=''){
$query->where('weekday',$weekday);
}
$event=$query->get();
也
条件如果($weekday!='')
检查$weekday
是否设置您可以使用
如果(!is_null($weekday))
则改为您可以在如下查询中使用if条件:
$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();
$query=Event::with('businesss')
->其中('startdate',''$today->格式('Y-m-d');
如果($weekday!=''){
$query->where('weekday',$weekday);
}
$event=$query->get();
也
条件如果($weekday!='')
检查$weekday
是否设置您可以使用
如果(!is_null($weekday))
相反,问题是此代码只返回1个结果,其中weekday='WE'该部分是正确的,但是它不会返回与开始和结束日期匹配但不包含$weekday的结果。$weekday始终有一个值,因为它'设置为碳,它必须匹配的是在哪里('weekday')所以匹配数据库中的'weekday',如果它不是空的,则运行where语句,这样它就必须匹配if(!empty($event->weekday)之类的内容但是它一直给我一个错误,集合是空的。你能编辑你的问题并放置示例表数据,然后告诉我你想要得到什么吗?问题是,这段代码只返回一个结果,其中weekday='WE'该部分是正确的,但是它不会返回与开始和结束日期匹配的结果,但不包含$weekday$wweekday总是有一个值,因为它被设置为carbon,它必须匹配的是where('weekday'),所以匹配数据库中的'weekday',如果它不是空的,则运行where语句,这样它就必须匹配if(!empty($event->weekday)之类的内容但它总是给我一个错误,集合是空的。你能编辑你的问题,把样本表数据放进去,告诉我你想要什么吗?