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
,再次拋出相同的錯誤。
我的代碼有什麼問題?