Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony用户更新角色时出现错误或bug_Symfony_Caching - Fatal编程技术网

Symfony用户更新角色时出现错误或bug

Symfony用户更新角色时出现错误或bug,symfony,caching,Symfony,Caching,这一次,我在管理用户角色的项目中遇到了一个奇怪的错误 我安装了EasyAdmin捆绑包,可以在其中管理用户的角色。因此,我使用一个可以访问EasyAdmin的用户登录(本例中为角色\管理员)。除了这个角色之外,我还有几个角色,其中一个叫做role_SUPERSUSER,其中一个用户可以编辑其他用户无权编辑的两个字段 所以扔掉EasyAdmin,我把超级用户这个角色从我自己身上移除,事情的最重要的部分就来了。如果我尝试从配置文件访问编辑区域,如果您拥有此角色,您将能够编辑此字段,但由于我将其从自己

这一次,我在管理用户角色的项目中遇到了一个奇怪的错误

我安装了EasyAdmin捆绑包,可以在其中管理用户的角色。因此,我使用一个可以访问EasyAdmin的用户登录(本例中为角色\管理员)。除了这个角色之外,我还有几个角色,其中一个叫做role_SUPERSUSER,其中一个用户可以编辑其他用户无权编辑的两个字段

所以扔掉EasyAdmin,我把超级用户这个角色从我自己身上移除,事情的最重要的部分就来了。如果我尝试从配置文件访问编辑区域,如果您拥有此角色,您将能够编辑此字段,但由于我将其从自己的角色中删除,因此我希望不会在那里查看此字段。相反,屏幕上会出现一个错误

如果我只是注销并再次登录,问题就解决了。但是很明显,我不能强迫用户在我改变他们的角色时注销和登录


我猜问题出在抛出缓存时,但我没有找到解决方案。

默认情况下,在身份验证时会添加Symfony角色,因此您必须重新登录才能使此更改生效

您可以在
security.yml
中更改此设置

security:
    always_authenticate_before_granting: true

多亏了KNPC大学,我才能找到解决办法

解决方案过程将创建一个侦听器,在每个控制器之前更新用户

我从这些链接中得到了一些想法:

请特别注意此链接: