在不使用控制器的情况下使用 symfony 从数据库加载活动用户列表
Load list of active users from database with symfony without using a controller
我正在我的导航栏上制作一个拟音化菜单,这样我就可以从任何我不想在控制器中使用 getRepository 并传递给前端的页面进行访问。
在 symfony 4 上有没有一种方法可以让我从我的数据库中获取所有用户并将其调用到前端?例如 app.session.user
(获取登录用户的信息)?
谢谢!
正如 Cerad 提到的,您可以在模板中嵌入控制器: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,所以不需要加注解
我正在我的导航栏上制作一个拟音化菜单,这样我就可以从任何我不想在控制器中使用 getRepository 并传递给前端的页面进行访问。
在 symfony 4 上有没有一种方法可以让我从我的数据库中获取所有用户并将其调用到前端?例如 app.session.user
(获取登录用户的信息)?
谢谢!
正如 Cerad 提到的,您可以在模板中嵌入控制器: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,所以不需要加注解