无法比较 Laravel 5 中的 Carbon 实例?
Cannot compare Carbon instances in Laravel 5?
我正在使用 fullcalendar 插件,我正在尝试获取数据库中某个特定日期前后的所有事件。完整日历通过添加名为 'start' 和 'end' 的参数对事件进行分页。我能够像这样将它们解析为 Carbon 实例:
Carbon::parse($data['start']);
Carbon::parse($data['end']);
现在一切正常:
$events = $this->event->where('user_id', auth()->user()->id)
->get();
但这不是:
$events = $this->event->where('user_id', auth()->user()->id)
->where('start', '>=', Carbon::parse($data['start']))
->where('end', '<=', Carbon::parse($data['end']))
->get();
为什么我无法使用第二种方法在这两个日期之间发布事件。当我 运行 第一种方法时,它工作正常并获取所有事件并将它们发布在当前页面上但不幸的是它也获取了很多不需要获取的事件。
听完数据库查询后,事件查询是这样的:
select * from events
where user_id
= ? and start
>= ? and end
<= ?
这是我的一个小错误,我没有在我的数据库中设置事件的结束日期,因此查询已验证用户的所有事件都正常工作。
事实上,>= start
的查询也可以单独工作,但是 <= end
正在创建问题,因为 end 为空,因此 Eloquent 没有返回任何模型。
我正在使用 fullcalendar 插件,我正在尝试获取数据库中某个特定日期前后的所有事件。完整日历通过添加名为 'start' 和 'end' 的参数对事件进行分页。我能够像这样将它们解析为 Carbon 实例:
Carbon::parse($data['start']);
Carbon::parse($data['end']);
现在一切正常:
$events = $this->event->where('user_id', auth()->user()->id)
->get();
但这不是:
$events = $this->event->where('user_id', auth()->user()->id)
->where('start', '>=', Carbon::parse($data['start']))
->where('end', '<=', Carbon::parse($data['end']))
->get();
为什么我无法使用第二种方法在这两个日期之间发布事件。当我 运行 第一种方法时,它工作正常并获取所有事件并将它们发布在当前页面上但不幸的是它也获取了很多不需要获取的事件。
听完数据库查询后,事件查询是这样的:
select * from
events
whereuser_id
= ? andstart
>= ? andend
<= ?
这是我的一个小错误,我没有在我的数据库中设置事件的结束日期,因此查询已验证用户的所有事件都正常工作。
事实上,>= start
的查询也可以单独工作,但是 <= end
正在创建问题,因为 end 为空,因此 Eloquent 没有返回任何模型。