我需要根据属性(Laravel 5.6)从集合中删除项目。
$leagues = League::all();
foreach($leagues as $i => $L){
if($L->status == LeagueStatus::HIDDEN){
$leagues->forget($i); <<<<======== 1st attempt
unset($leagues[$i]); <<<<======== 2nd attempt
}
}
return response()->json($leagues->toArray());
这两种方法都可以正确删除项目,但是会导致响应JSON作为对象出现:
{ <<<<======== ITS OBJECT WITH NUMBERED KEYS, NOT ARRAY
"0":{
"id":1,
"title":"test...
正确的JSON为:
[ <<<<======== NORMAL ARRAY WITH OBJECTS
{
"id":1,
"title":"test...
我做错什么了吗?
答案 0 :(得分:1)
使用values
获取一个新的Collection,并将其键重置为连续的整数:
return response()->json($leagues->values());
答案 1 :(得分:0)
只需替换
return response()->json($leagues->toArray());
到
return json_decode($leagues);