2

我想拦截所有控制器动作并做两件事之一(取决于一个选项 - 对于这个例子,说 URL 中的一个查询字符串值):

(1) 返回一个仅包含变量的数组,而不是渲染模板

(2) 准确渲染模板,但忽略该模板内的任何“扩展”操作

这样做的原因是使用相同的服务器端代码,选项 1 允许我只返回 Ajax 请求的变量,选项 2 允许我只返回 HTML 的内容部分(对于 Ajax)而不是完整的带有导航等的 HTML

我尝试过扩展一个控制器,但一直遇到烦人的“与 Symfony\Bundle\FrameworkBundle\Controller\Controller 不匹配”的问题。

我试过使用事件监听器,这似乎让我更接近,但我不认为监听控制器事件实际上运行控制器。

我确定这应该很容易?

4

1 回答 1

1

为此,您可以使用 FOSRestBundle 或仅使用它的一部分。

来自 README.md:

启用输出和格式不可知控制器的视图层

https://github.com/FriendsOfSymfony/FOSRestBundle

于 2013-04-07T07:23:45.567 回答