在zend框架2中,我在module.config.php中有以下配置:
'strategies' => array(
'ViewJsonStrategy',
)
我的控制器是:
use ZendViewModelJsonModel;
$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
时,我得到了上面的一个,有人能帮我找出我做错了什么吗?
没有任何问题。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
}