拦截控制器- Symfony2


Intercepting a Controller - Symfony2

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

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

(2)准确地呈现模板,但忽略模板中的任何'extends'动作

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

我已经尝试扩展一个控制器,但一直得到烦人的'不匹配与Symfony'Bundle'FrameworkBundle' controller ' controller '问题。

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

我相信这应该很容易?

您可以使用FOSRestBundle或仅使用其部分来实现此目的。

README。md:

支持输出和格式无关控制器的视图层

https://github.com/FriendsOfSymfony/FOSRestBundle