Symfony2 - 不要像ZF setNoRender那样从控制器渲染视图

时间:2013-03-02 09:01:45

标签: symfony

相对较新的从ZF1转换为Symfony2。

我用Google搜索,似乎无法找到答案。只是想知道是否有办法不在Symfony2中从控制器动作渲染视图。

在ZF控制器中,我可以使用:

$this->_helper->viewRenderer->setNoRender(true);

Symfony2中的等价物是什么?

2 个答案:

答案 0 :(得分:4)

在Symfony中,没有任何内容会自动呈现给您。如果你需要渲染一些东西,你必须明确地做。如果你不想渲染,就不要这样做:)只需返回一个响应:

return new Response();

只有Symfony控制器的工作才能返回响应。渲染模板实际上也会创建一个响应。

答案 1 :(得分:0)

想要发表我的观点:    仅仅因为模板中渲染(ControllerMethod,{params})的可能性并不意味着你必须使用它。

这样做几乎总是导致一个糟糕的架构,项目开始难以调试的转折点,因为你正在混合一个VIEW(表示层)和一个CONTROLLER,它反过来渲染另一个VIEW。你明白了。

然后当你在ControllerMethod中出现错误,而你得到一个模板错误时,不是很好吗?

我保证软件项目中的强大架构。这种便宜的解决方案,比如使用这种商品,会导致坏的开始。我建议尽可能避免它,除非没有其他可能的方法。当然有! 这就是使用MVC的原因。要将代码与表示层分开,请开始混合,并且您的体系结构将泄漏。