在修订日期和培训日期之间进行检查

时间:2019-09-06 20:20:52

标签: laravel laravel-5

我的检查总是有问题...如果摩托车revision的位置在06/09/201911/09/2019的{​​{1}}上。

enter image description here

在我的表单000001中,我可以在Training上添加相同的摩托车

enter image description here

通常是不可能的

我有这个:

07/09/2019

请问您有个主意吗?

谢谢您的帮助

1 个答案:

答案 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才进行修改)。