0
越来越日期这是我ReservationController里面的功能:比较和Laravel雄辩结果
public function realtime() {
// Change to On Going
$ongoing = Reservation::select('*')
-> where('eventStatus', 'NYD') -> get();
//dd($ongoing);
foreach ($ongoing as $og) {
echo "Started For Each\n";
//dd($og);
if ($og -> reservationStart > Carbon::now() &&
$og -> reservationEnd < Carbon::now()) {
$og -> eventStatus = "On Going";
$og -> save();
echo "Updated to ongoing!";
}
else {
// echo $og -> reservationSTart;
}
}
// Change to Done
}
这个功能是通过一个任务调度发射。任务计划程序运行命令php.exe {path/to/my}/artisan schedule:run
,当然,php.exe会添加到系统变量PATH中。任务是每分钟发射一次命令。在我的内核,我加入这个代码我的日程安排功能里:
if (strtolower(env('SYS_REALTIME')) == "yes") {
$schedule->call('App\Http\Controllers\[email protected]') -> everyMinute();
}
现在,每次我开的命令(如果不管它是通过人工调度运行,或者通过任务调度解雇),我总是得到一个错误:
Running scheduled command:
App\Http\Controllers\[email protected]
Started For Each
[InvalidArgumentException]
Unexpected data found.
Unexpected data found.
Data missing
我希望系统从查询结果中获得时间,然后将其与当前时间进行比较。如果它在开始和结束时间之间,我想将eventStatus
值切换到On Going
。下面是在数据库中的字段列表:
- 我试着用
dd()
显示的$ongoing
值:primeID - INT AI reservationName - VARCHAR(30) dateReserved - date reservationStart - time reservationEnd - time
因此,这里是我到目前为止已经试过。它成功显示有关变量(包括日期和时间)的所有内容。
- 我试过用
dd()
来显示$og
的值。它成功显示传递的变量的转储,包括日期和时间。 - 我试过用
dd()
来显示$og -> reservationStart
的值。发现意外的数据(就像我上面所述的错误)。也试过在reservationEnd
。不过,它会抛出一个错误。 - 我试着用
dd()
来显示$og -> dateReserved
的值。它会正确显示日期的转储。 - 我试着删除变量和成员之间的空格。我仍然有一个错误。同样的错误。
- 我试着删除
foreach
区块内的所有代码,但echo "Started For Each\n";
除外。循环成功运行。 - 我试着在我的Laravel查询中删除
get()
。它没有进入循环。 - 我试着在我的Laravel查询中删除
select('*')
。出现相同的错误。 - 我尝试评论if语句,并使用
dd()
来显示$og -> reservationStart
。它引发同样的错误。试着与reservationEnd
,再次抛出相同的错误。
我的代码有什么问题?