问题描述
我正在导航栏上创建一个presonification菜单,以便可以从任何我不想使用控制器内部的getRepository并传递到前端的页面进行访问。
在symfony 4上是否可以从数据库中获取所有用户并将其调用在前面?例如app.session.user
(以获取有关已登录用户的信息)?
谢谢!
解决方法
正如Cerad所说,您可以在模板中嵌入一个Controller:https://symfony.com/doc/current/templates.html#embedding-controllers
不用做{% include 'base/navbar.html.twig' %}
,而是要做
在您的模板中:
{{ render(controller('App\\Controller\\BaseController::renderNavbar')) }}
在BaseController中
public function renderNavbar(UserRepository $userRepository) {
return $this->render('base/navbar.html.twig',[
'activeUsers' => $userRepository->findActiveUsers(),]);
}
这不是路由,它只是呈现html的函数,因此您无需添加注释。