我正在使用Laravel 5.4,这是我的用例:
我有Lessons
的列表,每个Lesson
都与特定的User
相关联,并且有date
,star_at
和end_at
领域。在允许我添加/编辑Lessons
的表单中,我需要进行验证检查(我们选择日期,开始和结束)
在形式):
- 新的Lesson
不应位于所选start_at
期间另一课程的时间范围(end_at
- > date
)。
所以我做了一个查询来检索当前Lessons
的所有User
(作为键(start_at)& value(end_at)的数组),其中date
=所选表格中的日期。
现在我需要检查我们在表单中选择的start_at
值是否存在于任何检索到的Lessons
数组记录的时间范围内。然后可能会显示错误(此日期此时间范围内已有课程)。
请帮忙,可能有点不清楚,但如果需要,我可以进一步解释。
提前谢谢。
答案 0 :(得分:2)
根据我对这个问题的理解,下面的代码应该可以解决问题。根据您的应用程序更改模型和字段名称。
protected function store()
{
$input = request()->all();
$lessons = Lesson::whereDate('date', Carbon::parse($input['date']))
->where('start_at', '>=', Carbon::parse($input['start_at']))
->where('end_at', '<=', Carbon::parse($input['start_at']))
->count();
if ($lessons) {
// lesson in exists on this date in the given time frame.
// handle error
}
Lesson::create($input);
// handle success
}