0

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

这是我在控制器的 init 函数中使用的代码

$this->_helper->contextSwitch()
                ->addActionContext('index', array('xml', 'json'))
                  ->setAutoJsonSerialization(true)
                    ->initContext();

在其他一些方法中,我有我想要作为 json 响应的数据的学说集合。

代码是

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

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

但是为了响应,我得到一个空的 json 字符串。

{"flirts":{}}

我做错了什么。提前致谢

4

1 回答 1

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
于 2012-06-22T21:42:49.013 回答