Laravel 通过在我的预订中添加开始时间和停止时间来调整我的代码

Laravel 通过在我的预订中添加开始时间和停止时间来调整我的代码,laravel,laravel-5,Laravel,Laravel 5,我必须添加我的培训控制器两个变量=>开始时间&停止时间 在我的旧代码中,我有以下内容: $conflictTraining = Training::where('fk_motorbike', $request->get('fk_motorbike')) ->whereDate('date_seance', "=" , Carbon::parse($date_seance)) ->where('hour_start', "<=" , $request->ge

我必须添加我的
培训控制器
两个变量=>
开始时间
&
停止时间

在我的旧代码中,我有以下内容:

 $conflictTraining = Training::where('fk_motorbike', $request->get('fk_motorbike')) 
 ->whereDate('date_seance', "=" , Carbon::parse($date_seance)) 
 ->where('hour_start', "<=" , $request->get('hour_start')) 
 ->where('hour_end', ">=" , $request->get('hour_end'))
 ->where('fk_former', $request->get('fk_former'))
 ->first();

我提前感谢您的帮助。

如果您询问如何为两个新的数据库字段添加新的约束,
start\u time
stop\u time
,我想您对当前查询的
$conflictTraining
已经非常熟悉了

您没有说明具体的问题是什么,但我猜以下几行:

$start_time = Carbon::createFromFormat('d-m-Y H:s', $date_seance . ' ' . $hour_start);
$stop_time = Carbon::createFromFormat('d-m-Y H:s', $date_seance . ' ' . $hour_end);
正在生成与数据库中的
start\u time
stop\u time
格式不匹配的内容。如果你分解了你在这些变量中创建的内容,你基本上是在告诉Carbon创建一个类似这样的变量:“15-10-2019 10:00:00”(注意,00是秒,而不是从你使用
s
而不是
i
开始的分钟)

因此,您的第一个问题应该是,‘我的数据库是否以转储
$start\u time
时显示的确切格式存储开始时间?’如果不是,查询将永远不会产生命中。您当然可以将开始时间和停止时间作为日期和时间存储在数据库中。。。但请记住,如果您这样做,您将受到日期和时间的限制。换句话说,如果您只希望任何一天的开始时间为10:00,那么这将不起作用,因为数据库在特定日期存储10:00

解决这一问题的一种方法是尽可能简单。如果这些时间与某个特定日期无关,并且总是在某个小时,请将它们保存为一个简单的数字。例如
08
22
。然后,你不需要使用碳,你只是比较简单的整数。如果你想使用一个实际的时间(你可能想要18:20或者别的什么),这并不复杂——你只需要改变你存储和创建时间的方式

您可以使用它,但一般的想法是在数据库和从表单创建的内容之间以一致的格式存储/创建时间。因此,对于
start\u time
,您可以将小时和分钟保存在不同的列中。或者计算午夜后的分钟数并存储为整数。甚至可以将其存储为文本,并在两侧使用碳素制成格式化对象


就我个人而言,我发现处理整数最简单,所以我会做一个计算(可能是午夜过后几分钟),然后在整个程序中使用该计算来处理整数。有很多方法可以解决这个问题-希望这能向您解释问题。

请澄清您的具体问题,或添加其他详细信息,以突出您所需要的内容。正如目前所写的,很难准确地说出你在问什么。请参阅页面以获取澄清此问题的帮助。感谢您的解释。对于我的$conflictTraining请求,我每个日期只能添加一条记录,我觉得这太奇怪了。是的,这与您的代码是正确的。您的代码询问在任何日期是否有x小时到x小时之间的培训。如果您想再记录一次,您需要在其中添加一行,以检查同一查询中的
date\u seance
字段,从而将查询缩小到当时的一天。但是,好消息是您似乎已经解决了
开始时间
停止时间
问题:)是的,非常感谢您的解释。我跟你学了很多。
$start_time = Carbon::createFromFormat('d-m-Y H:s', $date_seance . ' ' . $hour_start);
$stop_time = Carbon::createFromFormat('d-m-Y H:s', $date_seance . ' ' . $hour_end);