我有破坏功能:
public function destroy(Tag $tag)
{
$tag->delete();
return Response::json([], ResponseHttp::HTTP_OK);
}
如果前端发送一个帖子的ID - 一切都好。 但如果前端发送数组的帖子怎么删除?
答案 0 :(得分:0)
您还可以使用分隔符传递一组ID。例如。逗号
所以你的路线看起来像destroy/1,2,3,4
然后在你的控制器中:
public function destroy($ids)
{
Tag::destroy(explode(",",$ids));
return Response::json([], ResponseHttp::HTTP_OK);
}
编辑:您使用的是DELETE
方法,因此您的网址会显示为api/tag/1,2,3
答案 1 :(得分:0)
尝试一下,如果你可以得到一组id,那么你将把它们删除为
public function destroyArrayOfTag($tag[]=''){ //you can also use Request for getting post attributes
Tag::whereIn('id',$tag)->delete();
return Response::json([], ResponseHttp::HTTP_OK);
}
其中$ tag是一个id数组。祝你好运
答案 2 :(得分:0)
public function destroy($ids)
{
$success = Tag::find($ids)->delete();
return Response::json([], ResponseHttp::HTTP_OK);
}
find()
函数将通过PK查找多个记录,并在其上调用delete()
将删除这些记录。您的数组必须看起来像(来自文档)$flights = App\Flight::find([1, 2, 3]);
,其中1,2,3是PK。这称为Indexed array
相关:https://laracasts.com/discuss/channels/eloquent/return-value-of-delete-method
答案 3 :(得分:0)
我是通过过滤器做的 -
public function destroy()
{
Tag::filter(\Request::only(['filter']))->delete();
return Response::json([], ResponseHttp::HTTP_OK);
}
答案 4 :(得分:-1)
也许您应该在ajax中添加一个数组变量。 像这样的例子:
var data =[];
然后将数组post获取到数据中。然后你可以做这件事:
for(var i=0; i<data.length; i++)
{
$.ajax({
url: your_path+'/destroy/'+data[i],
type: 'GET',
dataType: 'json',
success:function(response) {
notify(1,"Your Response Message");
}
})
}
希望这会对你有所帮助。感谢&#39; S