Php Zend2-如何获取Zend\View\Model\JsonModel对象中的数据?

Php Zend2-如何获取Zend\View\Model\JsonModel对象中的数据?,php,json,zend-framework2,Php,Json,Zend Framework2,如何获取Zend\View\Model\JsonModel对象中的数据 接下来,我有下面的代码 public function create($data) { $form = new AlbumForm(); $album = new Album(); $form->setInputFilter($album->getInputFilter()); $form->setData($data); if ($form->isValid(

如何获取
Zend\View\Model\JsonModel对象中的数据

接下来,我有下面的代码

public function create($data)
{
    $form = new AlbumForm();
    $album = new Album();
    $form->setInputFilter($album->getInputFilter());
    $form->setData($data);
    if ($form->isValid()) {
        $album->exchangeArray($form->getData());
        $id = $this->getAlbumTable()->saveAlbum($album);
    }

    print_r($this->get($id));

    return new JsonModel(array(
        'data' => $this->get($id),
    ));
}
使用此
打印($this->get($id)),我知道

Zend\View\Model\JsonModel Object
(
    [captureTo:protected] => 
    [jsonpCallback:protected] => 
    [terminate:protected] => 1
    [children:protected] => Array
        (
        )

    [options:protected] => Array
        (
        )

    [template:protected] => 
    [variables:protected] => Array
        (
            [data] => Album\Model\Album Object
                (
                    [id] => 15
                    [artist] => The  Military  Wives
                    [title] => In  My  Dreams
                    [inputFilter:protected] => 
                )

        )

    [append:protected] => 
)
但是我如何才能得到下面这个结果呢

           [data] => Album\Model\Album Object
                (
                    [id] => 15
                    [artist] => The  Military  Wives
                    [title] => In  My  Dreams
                    [inputFilter:protected] => 
                )

由于
JsonModel
将所有传递的变量序列化到嵌套数组和字符串,以将该变量表示为JSON,因此在这种情况下,将
对象
实例传递到
JsonModel
将毫无意义

尝试将
相册
对象的数组表示形式传递给
JsonModel

return new JsonModel(array("data" => $album->extract()));

别忘了将
toArray()
èxtract()
方法添加到相册模型中:

class Album
{
    public function extract()
    {
       return [
           'id' => $this->id,
           'artist' => $this->artist,
           // ...
       ];
    }
}
您可能还需要实现接口。

返回新的JsonModel(数组(“数据”=>$album))
class Album
{
    public function extract()
    {
       return [
           'id' => $this->id,
           'artist' => $this->artist,
           // ...
       ];
    }
}