我想更改要完成的任务的状态。我在数据库中有一个status_id列,1等于complete。我希望单击按钮将状态ID更改为1
我的路线

Route::patch('/tasks/completed/{Task}', 'TasksController@completedUpdate')->name('completedUpdate');

我的按钮
<form action="{{ route('completedUpdate', $task->id) }}" method="POST">
    {{ csrf_field() }}
    {{ method_field('PATCH') }}
    <button type="submit" class="button is-inverted" style="margin-top: 10px;">Mark Complete</button>
  </form>

我的控制器
public function completedUpdate(Request $request, $task)
{
    $task->status_id = $request->status_id;

    $task->save;

    return redirect()->back()->with('message', 'task marked complete');
}

它给我的错误是:
试图分配非对象的属性
如果需要更多信息请告诉我

最佳答案

你应该改变:

public function completedUpdate(Request $request, $task)
{
    $task->status_id = $request->status_id;

    $task->save;

    return redirect()->back()->with('message', 'task marked complete');
}

进入:
public function completedUpdate(Request $request, Task $task)
{
    $task->status_id = $request->status_id;

    $task->save();

    return redirect()->back()->with('message', 'task marked complete');
}

因此,您需要输入$task变量的提示类型,并使用save()方法而不是save属性。
也可能代替:
/tasks/completed/{Task}

您应该使用:
/tasks/completed/{task}

09-25 16:28
查看更多