【发布时间】:2017-11-27 13:37:28
【问题描述】:
在 Symfony 4.1 项目下使用 FOSRestBundle 返回视图时遇到问题。
这是来自我的控制器的代码:
class NewsController extends FOSRestController
{
public function getNewsAction()
{
$data = ['news1', 'news2'];
$view = $this->view($data, 200);
return $this->handleView($view);
}
}
fos_rest.yaml
fos_rest:
param_fetcher_listener: true
allowed_methods_listener: true
routing_loader: true
view:
view_response_listener: 'force'
format_listener:
rules:
- { path: ^/api, prefer_extension: true, fallback_format: json, priorities: [ json, html ] }
framework.yaml
framework:
secret: '%env(APP_SECRET)%'
php_errors:
log: true
sensio_framework_extra:
view: { annotations: true }
所以我有相当基本的配置,但我仍然收到这样的错误:
(1/1) 运行时异常 您必须启用 SensioFrameworkExtraBundle 视图注释才能使用 ViewResponseListener。
我试图删除“view:view_response_listener:'force'”,但后来我遇到了这个错误:
一个 Symfony\Bundle\FrameworkBundle\Templating\EngineInterface 的实例 >必须注入 FOS\RestBundle\View\ViewHandler 来渲染模板。
我为此苦苦挣扎了好几个小时。是因为 Symfony 4 beta 状态吗?或者我做错了什么?也许我错过了一些依赖?我在官方文档中找不到任何关于这个问题的有用信息。
【问题讨论】:
-
可能与this 有关,顺便说一句,4.1 将是主开发版本。 4.0 仅处于发布候选阶段。
-
并且根据bundle compatibility spreadsheet fosrestbundle 还不支持4.x。没有什么大惊喜。
标签: php symfony fosrestbundle