【问题标题】:Laravel MethodNotAllowedHttpException......againLaravel MethodNotAllowedHttpException ......再次
【发布时间】:2018-05-13 05:32:12
【问题描述】:

我有一个更新表单,当我保存时收到此错误消息

(1/1) RouteCollection.php 中的 MethodNotAllowedHttpException(第 251 行)

在 RouteCollection->methodNotAllowed(array('GET', 'HEAD', 'POST')) 中

RouteCollection.php(第 238 行)

这是我的表格

<form enctype="multipart/form-data" action="{{route('products.update', $product->ProductId)}}" method="POST">
    {{ method_field('PUT') }}
    {!! csrf_field() !!}

和我的路线

Route::get('products', 'ProductController@index')->name('products.index');
Route::post('products', 'ProductController@index')->name('products.search');
Route::get('products/create', 'ProductController@create')->name('products.create');
Route::post('products/create', 'ProductController@store')->name('products.store');
Route::get('products/{id}', 'ProductController@show')->name('products.show');
Route::get('products/{id}/edit', 'ProductController@edit')->name('products.edit');
Route::post('products/{id}/edit', 'ProductController@update')->name('products.update');

路由列表看起来不错,除了更新路由,而其他更新路由使用 PUT|PATCH

| |发布 |产品/{id}/编辑 products.update | \Http\Controllers\ProductController@update |网络,身份验证

据我所知,一切都应该正常工作,为什么方法没有更新?

【问题讨论】:

  • 你能不能把Route::post('products/{id}/edit', ...改成Route::put('products/{id}/edit', ...看看有什么作用?

标签: php forms routes laravel-5.3


【解决方案1】:

您将路线声明为POST

然后以你欺骗PUT方法的形式。

POST != PUT

路由未定义为处理方法PUT。你定义的方法就是必须使用的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-15
    • 2013-07-04
    • 2015-09-11
    • 2017-12-21
    • 2018-02-28
    • 2016-08-31
    • 2018-01-13
    • 2013-09-18
    相关资源
    最近更新 更多