如何在回调函数中插入数组

时间:2015-11-30 10:58:31

标签: php json rest

我有一个从我的实体生成的数组来自以下代码:

$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;

所以我的问题是如何在回调函数中插入一个数组?

0 个答案:

没有答案