2017-06-14 44 views
4

如何在每个项目中添加新字段,我已经使用put()但它只添加在最后一个项目上。Laravel如何在查询结果中添加新字段

return self::where('latest', 1) 
      ->where('competitionId',$competitionId) 
      ->orderBy('won','desc') 
      ->orderBy('teamName','asc') 
      ->get(['teamName','played','won','lost','percentage', 'streak']) 
      ->put('test', ['123', '345']) 
      ->toJson(); 

结果:

{ 
"0": {"teamName": "A"}, 
"1": {"teamName": "B"}, 
"2": {"teamName": "C", "test": ['123', '345']}, 
} 

预期输出:

{ 
"0": {"teamName": "A", "test": "qwerty"}, 
"1": {"teamName": "B", "test": "qwerty"}, 
"2": {"teamName": "C", "test": "qwerty"}, 
} 

回答

5

可以使用map()

->map(function ($item) { 
    $item['test'] = ['123', '345']; 
    return $item; 
}); 
+0

集合{#389▼ #items:数组:8 [▼ 0 =>空 1 =>空 2 =>空 3 =>空 4 =>空 5 =>空 6 =>空 7 =>空 ] } – PenAndPapers

+0

它变成所有项目的回报null – PenAndPapers

+0

我发现'return $ item'; –