Laravel 5.4 查询检查值是否存在于数组的 keys/values 之间
Laravel 5.4 query check if value exists between the keys/values of an array
我正在使用 Laravel 5.4,这是我的用例:
我有一个 Lessons
的列表,每个 Lesson
都与特定的 User
相关联,并且有一个 date
、star_at
和 end_at
字段。在允许我 add/edit Lessons
的表格中,我需要进行验证检查(我们选择日期、开始和结束
在表格中):
- 新 Lesson
不应在所选 date
.
期间另一课的时间范围内 (start_at
-> end_at
)
所以我做了一个查询来检索当前 User
的所有 Lessons
(作为键(start_at)和值(end_at)的数组)其中 date
= 表格中选定的日期。
现在我需要检查我们在表单中选择的 start_at
值是否存在于检索到的任何 Lessons
数组记录的时间范围内。然后可能会显示错误(在这个时间范围内已经有一个课程在这个日期)。
请帮忙,可能有点不清楚,但如果您需要,我可以进一步解释。
提前致谢。
根据我对问题的理解,下面的代码应该可以解决问题。根据您的应用更改模型和字段名称。
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
}
我正在使用 Laravel 5.4,这是我的用例:
我有一个 Lessons
的列表,每个 Lesson
都与特定的 User
相关联,并且有一个 date
、star_at
和 end_at
字段。在允许我 add/edit Lessons
的表格中,我需要进行验证检查(我们选择日期、开始和结束
在表格中):
- 新 Lesson
不应在所选 date
.
start_at
-> end_at
)
所以我做了一个查询来检索当前 User
的所有 Lessons
(作为键(start_at)和值(end_at)的数组)其中 date
= 表格中选定的日期。
现在我需要检查我们在表单中选择的 start_at
值是否存在于检索到的任何 Lessons
数组记录的时间范围内。然后可能会显示错误(在这个时间范围内已经有一个课程在这个日期)。
请帮忙,可能有点不清楚,但如果您需要,我可以进一步解释。
提前致谢。
根据我对问题的理解,下面的代码应该可以解决问题。根据您的应用更改模型和字段名称。
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
}