【发布时间】:2020-04-13 06:05:28
【问题描述】:
单击edit.blade.php 中的编辑按钮时出现问题。在更新功能中,此路由不支持 PUT 方法。支持的方法:POST。
web.php
<?php
Route::get('/', function () {
return view('welcome');
});
Route::get('phones','PhonesController@index');
Route::post('store','PhonesController@store');
Route::delete('destroy/{id}','PhonesController@destroy');
Route::put('edit/{id}', 'PhonesController@edit');
Route::post('update/{id}','PhonesController@update');
查看edit.blade.php
<div class="container">
<div class="col-sm-offset-2 col-sm-8">
<div class="panel panel-default">
<div class="panel-heading">
Edit {{$phone->name}}
</div>
<div class="panel-body">
<!-- Display Validation Errors -->
<!-- New Task Form -->
<form action="{{url('update/'.$phone->id)}}" method="POST" class="form-horizontal">
@csrf
<div class="form-group">
<div class="col-sm-offset-3 col-sm-6">
<button type="submit" class="btn btn-primary">
@method('put')
<i class="fa fa-edit"></i> Edit
</button>
</div>
</div>
</form>
</div>
</div>
和控制器
public function edit($id)
{
$phone= Phone::find($id);
return view('edit',compact('phone'));
}
public function update(Request $request,$id)
{
$this->validate($request, [
'name' => 'required|max:10',
'model'=>'required'
]);
$phone=new Phone();
$phone->name=$request->input('name');
$phone->model=$request->input('model');
$phone->save();
return back();
}
只是这个问题我尝试了其他方法但仍然遇到同样的问题 谢谢。
【问题讨论】:
-
您的表单中没有
<input name="_method" type="hidden" value="PUT">,是吗? -
什么编辑按钮?这里没有任何东西可以发送 PUT 请求或带有欺骗性
_method的 POST 请求作为 PUT,这里没有任何东西可以发送 post 请求 -
我有,但我剪掉了,因为代码太烂了
-
用信息编辑您的问题,不要将代码添加到 cmets
-
您将“更新”路由定义为 POST,但您发送的是 PUT 请求,就这么简单:-)
标签: php laravel-5 controller routes laravel-blade