在Symfony 5中,我想Categories
在我的导航栏中为网站的每个页面显示实体。实际上我在控制器的每个函数中都返回相同的数据,例如
return $this->render('post/index.html.twig', ['Categories' => $Categories]);
我想知道是否有更好的方法总是返回我的类别,而不总是返回每个函数中的数据并返回相同的数据?
如果您的导航栏在所有页面上都相同,则{% include 'base/navbar.html.twig' %}
可以包括一个Controller,该Controller将从数据库中提取Categories并呈现该模板,而不是像这样包含导航栏模板。在此处进行了说明:https : //symfony.com/doc/current/templates.html#embedding-controllers。
在您的模板中:
{{ render(controller('App\\Controller\\BaseController::navbar')) }}
在BaseController中
public function navbar(CategoriesRepository $categoriesRepository) {
return $this->render('base/navbar.html.twig', [
'categories' => $categoriesRepository->findAll(),
]);
}
您不需要添加注释,因为没有路线。它只是一个返回html的函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句