Zend上下文切换json响应

时间:2012-06-22 13:19:47

标签: json zend-framework

我正在使用上下文切换来获取Zend框架中的json响应

这是我在控制器

中的init函数中使用的代码
$this->_helper->contextSwitch()
                ->addActionContext('index', array('xml', 'json'))
                  ->setAutoJsonSerialization(true)
                    ->initContext();

在其他一些方法中,我有doctrine_collection数据,我想作为json响应。

代码是

$pm = new ProfileMessage();
$flirts = $pm->fetchLastMessages($this->_member->user_id, "0,1", 
                                            Labels_MessageType::FLIRT, 5, 0);

$this->view->flirts = $flirts;

但是对于响应我得到一个空的json字符串。

{"flirts":{}}

我做错了什么。 提前致谢

1 个答案:

答案 0 :(得分:0)

您需要确保$ flirts是一个数组或可序列化的对象:

php > $user = new Model_User();
php > $user->setId(10);
php > echo json_encode($user);
{} //output is empty

/* Convert the object to array */
php > echo json_encode($user->toArray());
{"_id":10} //output not empty

/* Trying a simple object */
php > $simple = new stdClass();
php > $simple->something = 'else';
php > echo json_encode($simple);
{"something":"else"} //output not empty