我已经设置了一个简单的symfony/skeleton
应用程序,其中包含用户实体和身份验证。 身份验证成功后,我调用包含以下代码的路由:
public function index(Security $security)
{
$username = $security->getUser()->getUsername();
这会导致错误:
Call to a member function getUsername() on null
因此,显然安全组件现在与当前登录的用户无关。 但是,会话确实包含当前的用户名密码令牌(我使用转储进行了检查)。
当我使用website-skeleton
时,相同的代码工作正常。 骨架中缺少什么?
我的防火墙是这样设置的:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: true
logout:
path: ^/user/logout
json_login:
check_path: /user/login
只需使用$this->getUser();
即可从扩展AbstractController
的控制器获取经过身份验证的用户。