Symfony Controller返回数组

时间:2017-09-01 18:29:45

标签: symfony controller response symfony-2.8

我正在尝试创建一个使用注释配置Response的侦听器,并将响应内容设置为控制器返回。

控制器代码:

use PmtVct\PhotoBookBundle\Annotations\ResponseType;
use Symfony\Component\HttpFoundation\Request;

/**
* @ResponseType("JSON")
*/
public function home(Request $request) {
    return ['asdf' => 123];
}

但我收到了The controller must return a response'错误。

有一种方法可以在Controller而不是Response上返回数组吗?

2 个答案:

答案 0 :(得分:2)

你正试图对FOSRestBundle做类似的事情。也许考虑使用这个捆绑?它将允许:

  • 完全以您想要的方式在控制器中返回数组
  • 将响应串行化为Json或您希望的其他格式,也可以自动从请求中检测格式。

如果您仍想自己构建此类监听器 - 请查看它在FOSRestBundle中的完成情况 - https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/EventListener/ViewResponseListener.php - 他们正在使用" kernel.view&#34 ;事件

答案 1 :(得分:0)

根据the documentation,你可以像这样返回一个JsonResponse:

return new JsonResponse(['asdf' => 123]);