在我的一个动作中,我使用转发从其他控制器获取数据:
$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);
但那不起作用,我该怎么办才能解决这个问题?
答案 0 :(得分:0)
因为你没有从forward
方法获得JSON而是从symfony响应对象获取JSON。此外,从你的代码片段猜测,你正试图做一个非常糟糕的事情。
如果您希望一个操作收集数据并以JSON格式返回,而其他操作对该数据执行其他操作,则应在服务层中创建一个方法,该方法将检索该数据并将其用于这两个行动。
答案 1 :(得分:0)
只需在我的回复中添加->getContent()
,然后使用$collect = json_decode($collect, true);
,它就可以了。