<form action="{{ route('todo.edit',$todoedit->id,'edit') }}" method="POST" class="container">
@csrf
@method('PATCH')
<div class="form-group">
<label for="title">Title</label>
<input type="text" class="form-control" name="title" value="{{$todoedit->title}}">
</div>
<div class="form-group">
<label for="description">Description</label>
<input type="text" class="form-control" name="description" value="{{$todoedit->description}}">
</div>
<button type="submit" class="btn btn-primary form-control">Update</button>
</form>
Todo控制器:
public function edit(Request $request,$id)
{
$todo=Todo::find($id);
$todo->title=$request->title;
$todo->description=$request->description;
$todo->save();
return redirect(route('todo.index'));
}
我不知道这是什么问题,我正在执行CRUD,一切正常,但是Update部分不起作用,这给了我错误
此路由不支持PATCH方法。支持的方法:GET,HEAD。
我已经尝试了@method('UPDATE')
和PUT
的所有内容,但都无法正常工作
答案 0 :(得分:0)
因为您在控制器的edit方法中编写了更新功能主体。执行以下操作:
public function update(Request $request,$id)
{
$todo=Todo::find($id);
$todo->title=$request->title;
$todo->description=$request->description;
$todo->save();
return redirect(route('todo.index'));
}
,在您的编辑方法中,只需返回编辑视图并将$todo
对象传递给该视图
编辑方法类型为:获取
更新的方法类型为:输入或补丁
您可以在终端中通过简单运行php artisan route:list
来查看这种类型。