【问题标题】:Laravel Vue DELETE method not supported for this route. Supported methods: GET, HEAD此路线不支持 Laravel Vue DELETE 方法。支持的方法:GET、HEAD
【发布时间】:2020-04-15 17:59:36
【问题描述】:

我的 actions.js 中有以下代码。

export const deleteUser = ({ dispatch }, payload) => {
    console.log("El numero de id es js: ", payload.id);
    return axios
        .delete(window.urls.user.delete(payload.id))
        .then(respone => {
            dispatch("fetchUsers");
            return Promise.resolve();
        })
        .catch(error => {
            return Promise.reject(error);
        });
};

api.php

Route::delete('/{user}', [
    'uses' => 'UserController@destroy',
    'middleware' => 'permission:user.delete',
    'can:delete,user'    
]);

config.blade.php

user: {
            index : '/user',
            store: '/user',
            update: function(userid){
                return '/user/' + userid
            },
            delete: function(id){
                return '/user/' + id;
            }
        }, 

控制器

public function destroy(Request $request, $id)
{
    $user = User::find($id);
    $user->delete();
}

【问题讨论】:

  • 您的路线在组内吗?如果是这样,请您为您添加所有代码api.php 文件。

标签: laravel vue.js laravel-routing laravel-6


【解决方案1】:

我认为问题在于您的用户路由定义。假设您不使用路由分组而不是

Route::delete('/{user}', [
            'uses' => 'UserController@destroy',
            'middleware' => 'permission:user.delete',
            'can:delete,user'    
        ]);

你应该试试:

Route::delete('/user/{user}', [
            'uses' => 'UserController@destroy',
            'middleware' => 'permission:user.delete',
            'can:delete,user'    
        ]);

【讨论】:

  • @AgustinCoronel 因此,您应该在浏览器控制台中验证到达了什么 url,然后在 php 终端 php artisan route:list 命令中运行,以确保您有对应的 url 与 DELETE 方法
  • 我在列表中有这个:删除 | api/用户/用户/{用户} | |应用\Http\Controllers\UserController@destroy | api,auth:api,permission:user.delete
猜你喜欢
  • 2022-10-01
  • 2019-10-11
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
  • 2020-06-05
  • 2020-04-19
相关资源
最近更新 更多