猿问

我在 laravel 资源控制中更新功能时遇到问题

当我通过资源控制器更新时,Laravel 向我显示此错误

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 此路由不支持 POST 方法。支持的方法:GET、HEAD、PUT、PATCH、DELETE。

我对 Laravel 很陌生。花更多的时间来解决这个问题。

这是我的控制器。

尝试这个!


$data = [];

foreach ($profiles as $key => $val) {

    $user_id = $val['user_id'];

    $is_matched = 0;

    $encoded_data = [];


    foreach($encoded as $k => $v){

        if ($user_id == $v['encoder_id']) {

            $is_matched = 1;

            $encoded_data = $v;

        }

    }

    $ext_name = ($val['ext'] == '') ? '' : $val['ext'];

    $fullname = $val['first_name'].' '.substr($val['middle_name'], 0, 1).'. '.$val['last_name'].' '.$ext_name;

    $data[$key] = array(

        'id'       => ($is_matched == 1) ? $encoded_data['encoder_id'] : $user_id,

        'fullname' => ($is_matched == 1) ? $encoded_data['fullname'] : $fullname,

        'encoded'  => ($is_matched == 1) ? $encoded_data['encoded'] : 0

    );

}


开心每一天1111
浏览 100回答 2
2回答

慕田峪4524236

对于 rosource 控制器,更新方法应该是PUT或PATCH,例如:<form action="/foo/bar" method="POST">    @method('PATCH')</form>所以在你的代码中:<form method="post" action="{{ route('admin.categories.update', $category->id) }}">    @method('PATCH')    <input type="hidden" name="_token" value="{{ csrf_token() }}"     <div class="form-group">         <div class="row">                 <label class="col-md-3">Title</label>                 <div class="col-md-6">                 <input type="text" name="title" class="form-control" value="{{ $category->title }}">                 </div>                   <div class="clearfix"> </div>          </div>          <div class="form-group">            <input type="submit" class="btn btn-info" value="Save">         </div>       </div> </form>

四季花海

尝试这个!Route::post('/admin/categories',&nbsp;'Admin\CategoriesController@update',&nbsp;['as'=>'admin'])->name('admin.categories.update');
随时随地看视频慕课网APP
我要回答