【发布时间】:2017-05-29 06:52:35
【问题描述】:
我正在尝试使用 Laravel 在我的表单上执行 PUT 请求,它返回一个 MethodNotAllowedException,表单如下:
<form role="form" method="POST" action="{{ route('negocio.update', $negocio->id) }}" enctype="multipart/form-data">
{{ method_field('PUT') }}
</form>
而我的路线注册为:
Route::put('/update/{id}', ['as' => 'negocio.update', 'uses' => 'client\NegocioController@update']);
使用php artisan route:list 命令给了我以下路线:
| PUT | update/{id} | negocio.update | App\Http\Controllers\client\NegocioController@update | web
谁能解释一下,我做错了什么?我已经在不同的网站上搜索过,但没有解决方案。
*更新:
我打开浏览器检查器以查看正在执行的请求类型,它正在尝试使用 get 方法访问另一条路由,我没有注册该方法,所以这就是显示错误的原因,但事实是,我没有不知道为什么表单会提交到另一个 url。
【问题讨论】:
-
{{ route('negocio.update', $negocio->id) }} 的渲染内容是什么?是你提到的GET方法吗?
-
渲染内容例如:
(base_path)/update/2... 但是,我刚刚解决了这个问题,但我不知道为什么它不起作用,之前的请求导致“ PUT" 表单是一个 POST 请求,我将其更改为 GET 请求,现在它可以工作了...
标签: php forms laravel http routes