【发布时间】:2020-01-18 17:18:41
【问题描述】:
我使用的是 Laravel 5.8,我有两列数据类型为时间戳,start_time 和 end_time。在保存新记录之前,我想检查它是否已经存在。
例如,如果我的数据库中已经有 Start Time= 09:00:00, End Time: 17:00:00 我不应该设置 start time = 13:00: 00 和 end_time=16:00:00 因为它已经在现有的时间间隔内,我也不应该注册 16:00:00->20:00:00 因为 16 :00:00 在区间内。
到目前为止我有这个,它不起作用:
DB::table('student_classes')
->where('id', '!=', $id)
->whereNotBetween('start_date', [$data['start_date'], $data['end_date']]);
【问题讨论】:
-
到目前为止你有什么尝试?
-
DB::table('student_classes')->where('id', '!=', $id)->whereNotBetween('start_date' , [$data['start_date'], $data['end_date']] ),这不起作用
-
您是否允许将
08:00:00插入到09:00:00?你为什么要id != $id? -
如果有人在您检查时保存了记录怎么办?不要检查。只需将逻辑构建到“保存”中即可。
-
@JitendraYadav id!=id 表示如果编辑它可能会给你当前的模型,所以我排除了我当前的记录
标签: mysql laravel eloquent laravel-5.8