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 相关联,并且有一个 datestar_atend_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
}