将参数传递给所有视图

Dav*_*vid 3 controller parameter-passing symfony twig

我想在我的所有Twig视图上显示用户名/最后连接日期/时间和一些其他信息(这些视图都来自常见的Twig布局).

如何在不必将每个控制器的参数显式传递给每个视图的情况下实现这一目标?

我是否必须创建一个Twig扩展,或者调用一个控制器/动作,它将使用渲染从布局中检索用户名/连接/其他信息?

如果可能的话,我想要一个更简单的解决方案.

Eln*_*mov 10

最简单的解决方案是从模板/布局中嵌入控制器.但请注意,子请求成本高,可能会显着影响性能.如果在某些时候您会注意到您的应用程序的开发版本很慢,那么就知道原因可能是每个请求上的几个子请求.

下一个解决方案是Twig扩展.在大多数情况下,您需要功能.你可以称之为:

{{ user_info(user) }}
Run Code Online (Sandbox Code Playgroud)

我首先开始嵌入控制器,但我的开发版本达到了我的网站上的大多数页面在30秒内超时的程度.我首先不知道原因,但是一旦我发现它,我用Twig扩展替换了所有的subrequsts.从那以后,表现恢复正常.