我遇到以下问题,我有一个模版layout.html.twig,该模板随处可见,其中有一个菜单,其中包含从数据库中下载的类别,现在我的问题是如何从列表中创建类别列表。机器中每个控制器中的数据库,而不是每次都从中下载类别存储库和所有类别。我已经在Symfony中工作了很长时间,但是我创建的API没有视图,因此出现了问题。通常,我希望在加载layout.html.twig之后下载一个类别列表,而无需我干预,而无需在控制器的每次操作中都加载该列表。
我在网站上有固定的元素,例如:从数据库上下载的类别菜单,在主页上,我的热门文章也必须出现在每个子页面上,并且每个控制器的每个控制器都必须下载所有内容时间。
有什么想法吗?
答案 0 :(得分:3)
我会在DefaultController中创建一个menuFragment
方法,并使用子请求来呈现它。
https://symfony.com/doc/current/templating/embedding_controllers.html
有些人会告诉您,子请求会减慢您的代码的速度,但是如果您不过度使用它,这并不重要。 1-3子请求根本不会成为问题。