我的检查总是有问题...如果摩托车revision
的位置在06/09/2019
到11/09/2019
的{{1}}上。
在我的表单000001
中,我可以在Training
上添加相同的摩托车
通常是不可能的
我有这个:
07/09/2019
请问您有个主意吗?
谢谢您的帮助
答案 0 :(得分:1)
问题是您要查询修订版模型并检查时间是否在10:00可用。是的-修订要到12:00才开始。 修订版上的时间检查限制了查询-您仅查看12:00和16:00之间是否发生了冲突,而与每天无关。 IE,因为它无法按时(10:00!== 12:00)查询,因此无法获得匹配项,因此没有$conflictRevision
。
为进行快速修复演示,请删除查询中的时间检查:它现在应显示重复/冲突:
$conflictRevision = Revision::where('fk_motorbike', $fk_motorbike)
->whereDate('date_revision_start', "<=" , $date_start)
->whereDate('date_revision_end', ">=", $date_start)
->first();
您遇到了一些逻辑问题。由于您的修订可能会持续几天,而不仅仅是一天,因此,如何确定冲突时间是否与用户希望安排培训的日期在同一天?如果修订的时间可能超过一天,则添加修订时间没有任何意义。我们谈论哪一天在12:00和16:00之间发生故障?
我建议您从修订中删除时间-从逻辑的角度来看,如果我们不知道特定修订时间是哪一天,则尝试与时间进行比较是没有意义的。
如果您说修订在每天的12:00至16:00期间每天下降,则为例外。如果这是某种时间表,其中自行车仅在12:00投入使用,并且直到每天12:00才可用,那么修订中的小时数是很合理的,但是这意味着您的查询可以进行训练的问题...是正确的(自行车当天进行了修改,但直到12:00才进行修改)。