如何在Symfony 4中获取登录用户ID以展示其个人资料?
在Symfony 4中获取登录用户ID的正确姿势
嘿,刚好在Symfony 4里折腾过类似需求,旧方案确实大多失效了,给你几个现在能用的靠谱方法:
控制器中获取用户ID
直接注入Security组件就能轻松拿到当前登录用户,代码示例如下:use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Security\Core\Security; class ProfileController extends AbstractController { public function showProfile(Security $security) { // 获取当前登录的用户对象 $currentUser = $security->getUser(); if ($currentUser) { // 取出用户ID $userId = $currentUser->getId(); // 接下来就可以用这个ID去查询并展示个人资料了 } } }注意:要确保你的用户实体类(比如
User类)里有getId()方法,用Doctrine生成的实体一般都会自带,如果没有的话手动添加一个就行。Twig模板中直接展示
如果是要在前端模板里直接用用户ID,Symfony的Twig全局变量app.user就能直接调用:{% if app.user %} <div class="profile-header"> <p>你的用户ID:{{ app.user.id }}</p> <!-- 这里渲染你的个人资料内容 --> </div> {% endif %}服务中获取用户ID
要是需要在自定义服务里获取用户,同样通过依赖注入Security组件,用法和控制器里完全一致,注入后调用getUser()就能拿到用户对象,再取ID即可。
内容的提问来源于stack exchange,提问作者Liana.R
相关产品推荐
相关产品推荐

