小编Lor*_*ame的帖子

Axios,Laravel和VueJS中的删除方法

我正在尝试通过axios向laravel发送删除请求,如下所示:

axios.delete('api/users/' + this.checkedNames)
.then((response) => {
    console.log(response)
}, (error) => {
    // error callback
})
Run Code Online (Sandbox Code Playgroud)

现在从axios文档中我读到,对于删除请求,我们应该使用configObject,以便可以将上述内容重写为:

axios.delete('api/users/', {params: {ids:     
    this.checkedNames})
.then((response) => {
    console.log(response)
}, (error) => {
    // error callback
})
Run Code Online (Sandbox Code Playgroud)

然后我Route::resource('users', 'UsersController');在api.php中,因此删除的默认路由为:

DELETE| api/users/{user}| users.destroy 
Run Code Online (Sandbox Code Playgroud)

控制器的方法是:

|App\Http\Controllers\UsersController@destroy
Run Code Online (Sandbox Code Playgroud)

当我传递单个ID(例如api / users / 12)时,我能够按预期删除用户,它可以正确删除,但是当我尝试传递上述数组时,事情就变得复杂了。

如果我按照axios文档进行尝试,axios.delete('api/users/', {params: {id: this.checkedNames}})它似乎是在发送此消息,http://lorillacrud.dev/api/users?id[]=21&id[]=20但我得到的是405方法不允许。

如果我尝试axios.delete('api/users/' + this.checkedNames ),我得到http://lorillacrud.dev/api/users/20,21我的破坏方法,我可以抢IDS和删除等等,但我想知道这是否是做了正确的方法是什么?

更新

我似乎使它工作了,但是我不明白,因此仍然感谢任何帮助以使我了解我实际上正在做什么!

因此,如果更改为:

axios.delete('api/users/destroy', {params: {'id': this.checkedNames})
Run Code Online (Sandbox Code Playgroud)

在我的销毁方法中:

    if ($request->id) {
        foreach ($request->id as $id) {
            User::destroy($id); …
Run Code Online (Sandbox Code Playgroud)

api laravel axios

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

api ×1

axios ×1

laravel ×1