我的代码有问题。我的axios删除请求没有从数据库中删除数据。我得到响应200,但仅此而已。
组件
deleteComment(index){
axios.delete(this.uri + this.comments[index].id)
.catch(error=>{
console.log(error)
});
}
控制器
public function destroy(BlogComments $cid){
$comments->delete();
return response()->json([
'comments'=> $id,
'Message'=> "OK!"
]);
}
控制台->网络
Request URL: http://127.0.0.1:8000/api/blog-comments/4
Request Method: DELETE
Status Code: 200 OK
Remote Address: 127.0.0.1:8000
Referrer Policy: no-referrer-when-downgrade
当我创建响应表单控制器时,我只有空数组
comments[]
更新
我修复了。
我替换了
Route::resources('/blog-comments', 'DashboardBlogCommentsController');
通过
Route::delete('/blog-comments/{id}', 'DashboardBlogCommentsController@destroy');
为什么资源不起作用?我在其他页面中使用了相同的方法,并且有效
Route::resource('/advantages', 'DashboardAdvantagesController');
public function destroy(HomepageAdvantages $advantage){
$advantage->delete();
return response()->json([
'advantage'=>$advantage,
'message'=> 'task created'
]);
}
答案 0 :(得分:1)
也许是答案:
为什么资源不起作用?
路线
这可能是您编辑中的错字,而不是您的代码中的错字,但不是resources
:
Route::resources('/blog-comments', 'DashboardBlogCommentsController');
是resource
:
Route::resource('/blog-comments', 'DashboardBlogCommentsController');
并基于问题更新之前的代码:
控制器 DashboardBlogCommentsController
public function destroy(BlogComments $comment){
// use delete() on the variable where you assigned the object
$comment->delete();
return response()->json([
// 'comments'=> $id, this no needed, the comment doesn't exist anymore
'message' => 'OK!' ], 202);
}
希望有帮助