首页  >  问答  >  正文

如何解决静态调用非静态方法 '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粉032900484393 天前523

全部回复(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
  • 取消回复