symfony - 如何在服务中获取当前登录的用户

标签 symfony symfony-2.8

在 Symfony 2.8/3.0 中,使用我们花哨的新安全组件,我如何获取当前记录的 User服务中的(即 FOSUser)对象 没有 注入(inject)整个容器?

甚至有可能以非hacky的方式进行吗?

PS:我们不要认为“将其作为参数传递给服务函数”是显而易见的。还有,脏。

最佳答案

适用于 Symfony 3.4、4.x、5.x 及更高版本。安全实用程序类是在 Symfony 3.4 中引入的。

use Symfony\Component\Security\Core\Security;

public function indexAction(Security $security)
{
    $user = $security->getUser();
}

https://symfony.com/doc/3.4/security.html#always-check-if-the-user-is-logged-in

关于symfony - 如何在服务中获取当前登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36870272/

相关文章:

php - 是否可以共享 Symfony2 安装(一台服务器上的多个网站 [域])

mysql - 带有可选参数的 Dql 查询

mysql - 在 Doctrine2 中添加自定义 SQL 到 order By 语句

javascript - 从 FORM 访问 HTML 元素的 JavaScript 函数的单元测试用例

php - Symfony 2 EntityManager 注入(inject)服务

php - 使用 DataTransformer 将实体中的 Symfony2 base64 以表单形式(和反向)文件

php - Symfony2命令行生成全局文件夹下的twig模板

doctrine-orm - JMS 反序列化对多关系不会通过 orphanremoval 删除

Symfony2 JMS Serializer - 修改某些值

php - 将约束传递给 symfony 集合类型