我有一个从我的实体生成的数组来自以下代码:
$albums = $this->objectRepository->findAll();
$collection = new \Doctrine\Common\Collections\ArrayCollection($albums);
$array = $collection->map(function($a){
$a->songs = $a->songs->map(function($p){
return $p->toArray();
})->toArray();
return $a->toArray();
})->toArray();
就像你看到的那样,我的数组中有一个歌曲键,这是一个歌曲列表中的oneToMany关联 在由Song Entity代表的专辑中。这给了我一系列专辑中的歌曲。
这是我对json表示的简化回调:
$fractal = new \League\Fractal\Manager();
$resource = new \League\Fractal\Resource\Collection($albums, function(Album $album) {
return [
'id' => (int) $album->id,
'title' => $album->title,
'artist' => $album->artist,
'_embedded' => [
'_links' => [ $album->songs->songTitle ], //return null
],
];
});
$result = $fractal->createData($resource)->toArray();
return $result;
但是如何将我的歌曲列表插入到我的回调中?
这是一个for循环,它给出了回调之外的歌曲列表和
中的null$songs = array();
for($i=0; $i<count($array[0]['songs']); $i++)
$songs[$i]['href'] = $array[0]['songs'][$i]['songTitle'];
var_dump($songs);die;
所以我的问题是如何在回调函数中插入一个数组?