我想在我的所有 Twig View 上显示用户名/上次连接日期/时间和其他一些信息(它们都从一个常见的 Twig 布局扩展)。
如何在不必将这些参数从每个 Controller 显式传递到每个 View 的情况下实现这一点?
我是否必须创建一个 Twig 扩展,或者调用一个 Controller / Action 来使用 从布局中检索用户名/连接/其他信息?渲染 ?
如果可能,我想要一个更简单的解决方案。
最佳答案
最简单的解决方案是embed controllers从您的模板/布局。但请注意,子请求成本高昂,并且会显着影响性能。如果在某个时候你会注意到你的应用程序的开发版本慢得要命,那么你知道原因可能是每个请求都有几个子请求。
下一个解决方案是 Twig extensions .在大多数情况下,您需要 functions .你可以这样称呼它:
{{ user_info(user) }}
我首先从嵌入 Controller 开始,但我的开发版本达到了我网站上大多数页面在 30 秒内超时的地步。一开始不知道是什么原因,但是一发现就用Twig扩展替换了所有的subrequsts。此后演出恢复正常。
关于controller - 将参数传递给所有 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858773/