php - Laravel 应用程序编辑显示 MethodNotAllowedHttpException
问题描述
<form action="{{ route[('update'), $user->id]}}" method="post" style="border:1px solid #ccc">
{{ method_field('POST') }}
这是我编辑和更新的两条路线。
Route::get("{id}/edit", 'HomeController@edit')->name('edit');
Route::post('update', 'HomeController@update')->name('update');
这是我的控制器
public function update(Request $request, $id){
$arr = User::find($id);
$name->name = $request->input('name');
$email->email = $request->input('email');
$password->password = $request->input('password');
$arr->save();
return redirect('/');
}
这是我的编辑控制器
public function edit($id){
$user_id = auth()->user()->id;
$user = User::find($user_id);
return view("edit")->with('user');
}
解决方案
您需要在 url 路由中指定参数。
Route::post('update/{id}', 'HomeController@update')->name('update');
你的路线也不正确。它应该是
<form action="{{ route('update', [ 'id' =>$user->id])}}" method="post" style="border:1px solid #ccc">
此外,不需要method_field()
用于POST
请求,它们用于PATCH
和DELETE
请求。
附带说明一下,如果您的目标是更新现有记录,建议使用PATCH
request. (只是一种标准化的方式)
推荐阅读
- c++ - 是否可以将 Lua 脚本修改为要求?
- ios - 无法将值保存到核心数据
- jquery - 如何在 MVC 应用程序中使用 Jquery 创建向导?
- python - TensorFlow 对象检测自定义数据集
- android - 如何在滑行中使用错误或占位符的图像数组
- javascript - 仅当过渡元素是组件中的根元素时才调用过渡钩子
- android - java.text.ParseException:无法解析的日期:“2018 年 8 月 6 日上午 11:14:02”(偏移量 1)
- python - 在 SQL 中搜索元素
- python-3.x - Tkinter 中的一个组合框、一个按钮和两个页面
- amazon-ecs - How can I do to not let the container restart in aws ecs?