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,
// ...
];
}
}