使用json模型的zf2视图

Posted

技术标签:

【中文标题】使用json模型的zf2视图【英文标题】:Zf2 view using json model 【发布时间】:2014-09-16 11:34:41 【问题描述】:

在zend framework 2中,我在module.config.php中有以下配置:

'strategies' => array(
    'ViewJsonStrategy',
)

我的控制器是:

use Zend\View\Model\JsonModel;
$view = new JsonModel(array(
            'username' =>  ucfirst( $username ),
            'datarr' => array(

                'a' => 'A',
                'b' => 'B',
                'c' => 'C',
                'd' => 'D',

            ),
        ));

在我看来刚刚得到:

 "username" : "Reynold", "datarr" : "a":"A", "b":"B", "c":"C", "d":"D"  

当我使用$view = new ViewModel(); 时,我做对了,而在使用JsonModel 时,我得到了上面那个,谁能帮我找出我做错了什么?

【问题讨论】:

【参考方案1】:

这并没有错。 JsonModel 用于 ajax 请求,而 ViewModel 用于普通 http 请求。

您可以将来自 JsonModel 的响应用作 javascript 对象。 这是一个 jquery 的例子:

$.ajax(
    url: yourUrl,
    success: function(d) 
        console.log(d.username);
        console.log(d.datarr.a);
    
);

在您的控制器中,您可以检查它是否是这样的 ajax 请求:

if($this->getRequest()->isXmlHttpRequest()) 
   // return json-model

【讨论】:

以上是关于使用json模型的zf2视图的主要内容,如果未能解决你的问题,请参考以下文章

ZF2:如何从其他模块渲染视图

如何在ZF2中使用Ajax在模式窗口中渲染视图?

如何将模型的(json)值发送到视图控制器?

如何使用模型/集合获取 4 个 JSON (API) 响应到主干.js 中的一个视图

将 json 传递给视图模型时保持安全

返回带有对象模型的 JSON 或带有解析视图的 JSON