在symfony2中将另一个控制器转发到数组时如何转换JSON数据?

时间:2014-03-15 08:31:46

标签: json symfony forward

在我的一个动作中,我使用转发从其他控制器获取数据:

$collect = ($this ->forward('MyPracticeBundle:Collect:collect', array('jid' => 1, 'rid' => $rid)));

CollectController中的collectAction将返回一个json响应:

return new response(json_encode(array("havecollect" => 0)));

现在我想从其他控制器获取这些数据,我试过了:

$collect = json_decode($collect);

但那不起作用,我该怎么办才能解决这个问题?

2 个答案:

答案 0 :(得分:0)

因为你没有从forward方法获得JSON而是从symfony响应对象获取JSON。此外,从你的代码片段猜测,你正试图做一个非常糟糕的事情。

如果您希望一个操作收集数据并以JSON格式返回,而其他操作对该数据执行其他操作,则应在服务层中创建一个方法,该方法将检索该数据并将其用于这两个行动。

答案 1 :(得分:0)

只需在我的回复中添加->getContent(),然后使用$collect = json_decode($collect, true);,它就可以了。