Symfony 安全访问控制不会对数据库中的用户更改做出反应

Symfony Security access control doesn't react to user changes in DB

我的用户提供商设置为用户实体。

该实体有 getRoles() 模型并且它工作正常。

我的问题是:

我该怎么做才能将数据库更改应用于会话,而无需注销?

我觉得this question和你的很像。接受的答案是:

$user = $this->getUser();
$user->addRole('ROLE_ADMIN');
$this->get('fos_user.user_manager')->updateUser($user);
$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
$this->get('security.context')->setToken($token);

我和 Symfony 的选民一起去了:https://symfony.com/doc/current/security/voters.html

没有注销的安全角色无法实现。