Laravel MethodNotAllowedHttpException ......再次

时间:2017-11-29 13:25:32

标签: php forms routes laravel-5.3

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

  

(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

  

| | POST | products / {id} / edit products.update |   \ Http \ Controllers \ ProductController @ update |网,AUTH

据我所知,一切都应该有效,为什么方法不更新?

1 个答案:

答案 0 :(得分:0)

您宣布自己的路线为POST

然后在表单中欺骗PUT方法。

POST != PUT

未定义路径来处理方法PUT。您定义的方法是必须使用的方法。