首頁  >  問答  >  主體

如何解決靜態呼叫非靜態方法 'update' 的錯誤?

<p>這是我的函數。 我在其中遇到了錯誤,請幫我解決這個錯誤,並告訴我為什麼會發生這個錯誤。 </p> <pre class="brush:php;toolbar:false;">public function update(Request $request) { $id = $request->id; $grade = Grade::find($id); $grade = $request->validate([ 'title' => 'required|string', 'slig' => 'string', 'description' => 'string', ]); $grade = Grade::update($grade); return [ 'staus' => 'success', 'grade' => $grade, ]; }</pre>
P粉032900484P粉032900484443 天前560

全部回覆(1)我來回復

  • P粉156983446

    P粉1569834462023-08-26 00:38:39

    先建立一個實例。但我認為這不是真正的問題。

    $newGrade = (new Grade())->update($grade);
    
    return [
        'status' => 'success',
        'grade'  => $newGrade,
    ];

    嘗試將您的方法更改如下:

    $grade = Grade::findOrFail($request->id);
    
    $validatedData = $request->validate([
        'title' => 'required|string',
        'slig' => 'string',
        'description' => 'string',
    ]);
    
    $grade->update($validatedData);
    
    return [
        'status' => 'success',
        'grade' => $grade,
    ];

    回覆
    0
  • 取消回覆