我想將我現有的插入方法轉換爲查詢範圍,以便我可以重用它們並有更多的DRY方法。Laravel保存()未定義
這是我想轉換成Larvel查詢範圍是什麼:
$time = new Time;
$time->employee_id = $input['user_id'];
$time->day = Carbon::now()->toDateString();
$time->clock_in = Carbon::now()->toTimeString();
$time->save();
這是我現在有一個查詢範圍:
public function scopeClockIn($query, $userID) {
$query->employee_id = $userID;
$query->day = Carbon::now()->toDateString();
$query->clock_in = Carbon::now()->toTimeString();
$query->save();
}
這是我如何打電話以上查詢範圍:
$time = Time::clockIn($input['user_id']);
但我得到的錯誤:
Call to undefined method Illuminate\Database\Query\Builder::save()
我也曾嘗試:
$time = new Time::clockIn($input['user_id']);
但是當我嘗試用new
關鍵字我得到一個錯誤:
syntax error, unexpected 'clockIn' (T_STRING), expecting variable (T_VARIABLE) or '$'
谷歌還沒有非常有幫助,我發現其他具有相同錯誤消息的問題,但他們試圖檢索結果而不插入它們。希望有人能幫我弄清楚我做錯了什麼。
真棒謝謝你的詳細解釋! – Yamaha32088
很高興幫助。 :) –