php - 更新数据时,RouteCollection.php 第 251 行中的 MethodNotAllowedHttpException laravel
问题描述
这个问题即将编辑我表中的数据。视图或表单已完美显示。但是当我编辑我的数据并按下更新按钮时,它显示 MethodNotAllowedHttpException 错误。我的方法错了吗?
这是视图
<form class="form-horizontal form-label-left" method="post" action="{{action('AdminController@updateruang', $id_ruang)}}">
{{csrf_field()}}
<div class="item form-group">
<input name="_method" type="hidden" value="PATCH">
<label class="control-label col-md-3 col-sm-3 col-xs-12">ID Ruangan <span class="required">*</span></label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="title" name="title" value="{{$ruang->id_ruang}}">
</div>
</div>
<div class="item form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Nama Ruangan <span class="required">*</span></label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="title" name="title" value="{{$ruang->nm_ruang}}">
</div>
</div>
<div class="item form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Keterangan <span class="required">*</span></label>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="text" class="form-control form-control-lg" id="lgFormGroupInput" placeholder="title" name="title" value="{{$ruang->keterangan}}">
</div>
</div>
<div class="form-group row">
<div class="col-md-2"></div>
<button type="submit" class="btn btn-primary">Update</button>
</div>
</form>
这是 AdminController
public function updateruang(Request $request, $id_ruang)
{
$ruang = Ruang::find($id_ruang);
$ruang->nm_ruang = $request->get('nm_ruang');
$ruang->keterangan = $request->get('keterangan');
$ruang->save();
return redirect('/admin/dataruang')->with('success', 'New data has been updated!!');
}
这是路线
Route::post('/editdataruang{id_ruang}','AdminController@updateruang', function(){
$users[] = Auth::user();
$users[] = Auth::guard()->user();
$users[] = Auth::guard('admin')->user();
})->name('editdataruang');
解决方案
问题是这样的 - 在您的代码表单中,您有:
<input name="_method" type="hidden" value="PATCH">
但您的路线定义为
Route::post('/editdataruang{id_ruang}','AdminController@updateruang', function(){
所以要么删除行:
<input name="_method" type="hidden" value="PATCH">
从形式或变化:
Route::post('/editdataruang{id_ruang}','AdminController@updateruang', function(){
进入
Route::patch('/editdataruang{id_ruang}','AdminController@updateruang', function(){
假设您正在进行更新,您应该将路线从更改为post
,patch
而不是从表单中删除行。
推荐阅读
- asp.net-mvc - 如何在 MVC 中进行子字符串化。我在这里有什么错?
- java - 为什么在访问字段和方法时点之间的空格没有编译错误?
- javascript - 在按钮单击时有条件地格式化 JSX
- spring-security - 使用 Spring Security 进行验证
- java - 如何在使用过多重绘时防止延迟
- django - 我的用户配置文件更新表单未出现在我的模板中
- swift - 预期返回“双”的函数中缺少返回 | 该怎么办?
- sql - tSQLt 应用 NOT NULL 约束
- python-3.x - 在在线编译器中运行良好,但未在终端中运行。PYTHON
- logging - Java - 记录器输出到 Jenkins 日志