我是symfony的新手,我正在尝试构建一个登录系统。 我有一个非常简单的关系来存储用户
user(id:PK, name:string)
用户登录后,我将userId存储在他的会话中
$session = new Session();
$session->set('userId', $user->getId());
我稍后使用userId从数据库中获取用户并显示个性化内容。这是我控制器中的代码
$session = new Session();
$user = $this->getDoctrine()->getRepository('MyBundle:User')->find($session->get('userId'));
如何告诉symfony在每次请求时自动获取用户,而无需为每个控制器自己编写代码?
答案 0 :(得分:1)
Symfony非常稳固security system,你应该以它的方式实现你的登录系统。您可以在Cookbook中找到有关如何将传统登录系统与数据库集成的信息。
如果您以这种方式验证用户,则可以轻松获取当前用户:
$user = $this->get('security.context')->getToken()->getUser();
或者,如果您在控制器操作中:
$user = $this->getUser();
还有FOSUserBundle,它为您提供了一些很好的工具来处理系统中的常见用户管理。