gpt4 book ai didi

laravel - Axios、Laravel 和 VueJS 中的删除方法

转载 作者:行者123 更新时间:2023-12-02 12:46:36 25 4
gpt4 key购买 nike

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

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

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

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

然后我在 api.php 中有 Route::resource('users', 'UsersController'); 所以删除的默认路由是:

DELETE| api/users/{user}| users.destroy 

Controller 的方法是:

|App\Http\Controllers\UsersController@destroy

当我传递一个 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 code> 所以在我的 destroy 方法中我可以获取 ids 并删除,但我想知道这是否是正确的方法?

更新

我似乎让它工作了,但我不明白,所以仍然感谢任何帮助来了解我实际所做的工作!

所以,如果更改为:

axios.delete('api/users/destroy', {params: {'id': this.checkedNames})

在我的销毁方法中:

    if ($request->id) {
foreach ($request->id as $id) {
User::destroy($id);
}
}
User::destroy($id);
}

所以...

// not deletes the user
axios.delete('api/users/destroy', {params: {id: id}})

// ok deletes the users when using request->id in a for loop in the destroy laravel method.
axios.delete('api/users/destroy', {params: {ids: this.checkedNames}})

// ok deletes one user
axios.delete('api/users/' + id)

抱歉大家,但我很困惑为什么以及什么!!!

路由名称是user.destroy为什么当我传递一个数组时它起作用而当我传递单个值时它不起作用,为什么反之亦然,带有方法delete的路由在传递一个值时不会删除数组???

使用 api/users/destroy 与仅使用 api/users 之间有什么区别?

感谢您对此提供的任何帮助!

最佳答案

我也遇到了同样的问题。这对我有用:

deletePost: function(id) {
axios.post('/posts/'+id,{_method: 'delete'})
}

使用axios.post()代替axios.delete,并发送_method“删除”

关于laravel - Axios、Laravel 和 VueJS 中的删除方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46387850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com