此路由不支持PUT方法。支持的方法:POST

时间:2019-12-20 18:53:39

标签: php laravel-5 controller routes laravel-blade

单击Terminal::chooseConfig(/*arguments*/);中的“编辑”按钮时出现问题。在更新功能中,此路由不支持PUT方法。支持的方法:POST。

web.php

edit.blade.php

查看edit.blade.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');

和控制器

<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> 

这是一个问题,我尝试了其他方法,但仍然遇到相同的问题 谢谢。

1 个答案:

答案 0 :(得分:0)

您的编辑路径不应为PUT,而应为GET。然后,如果您想以这种方式提交更新路由,则应将其更新路由设置为PUT

Route::get('edit/{id}', 'PhonesController@edit');
Route::put('update/{id}','PhonesController@update');

然后,将您发送到编辑页面的只是常规的超级链接(GET),它也允许您重定向到该页面。