该路由不支持GET方法。支持:POST

时间:2020-05-18 12:51:55

标签: php laravel

我的表单:

 @if(!empty($Product) && !empty($ProductSpec))
            <form action="{{route('update_product')}}" method="POST">
                    <div class="form-group">
                        <label for="product_code">Product Code</label>
                        <input class="form-control" name="product_code" id="product_code" type="text" placeholder="product code..." value="{{$Product->product_code}}">
                    </div>
                    @error('product_code')
                    <div class="alert alert-danger">{{ $message }}</div>
                    @enderror

                    <div class="form-group">
                        <button type="submit" class="btn btn-primary">Update information</button>
                    </div>
                    {{ csrf_field() }}
                </form>
                @endif

路线:

Route::resource('add_product','ProductController');
Route::get('edit_product', 'ProductController@find_product_index')->name("edit_product");
Route::post('find_product', 'ProductController@find_product')->name("find_product");
Route::post('update_product', 'ProductController@update_product')->name("update_product");

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

控制器功能:

public function update_product(Request $request)
{
    $this->validate($request, [
        'name' => 'required|max:120|string']);
    return redirect()->route('edit_product')->with('success', 'Product Updated successfully');
}

我正在使用此代码,并收到“此路由不支持Get方法,Supported:POST”错误。 不知道我的代码有什么问题吗?起初我以为这是控制器中的MySQL语句,但是我删除了它们,但仍然遇到同样的问题。

编辑: php artisan route:列表显示-> image

2 个答案:

答案 0 :(得分:0)

您的路线应为:

Route::put('update_product/{update_product} ', 'ProductController@update_product')->name("update_product");

您的表格应类似于: ......

{{ csrf_field() }}
@method('PUT')
</form>

答案 1 :(得分:0)

运行php artisan optimize清除并重新配置您的缓存和路由。 清除路由还不够。