我不明白,我在Symfony 3下工作,当我要转到用户管理页面时遇到一个错误:注意:unserialize():在偏移量11为28字节时出错Symfony \ Component \ Debug \ Exception \ ContextErrorExceptionin vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php (line 58)但是,在效果很好之前,这很奇怪。其他几个人已经遇到过相同的问题,但是原因从来都不相同。我记得在我的项目的无用文件中做了一些空虚操作,但是我删除了未使用的文件以及未使用的注释块。如果它有助于解决我的问题,这是我的user.php谢谢 !编辑:好的,我只是非常愚蠢。我的用户实体继承自FOSUserBundle。在我的数据库中,我有一个角色为SUPER_ADMIN的用户。同时,Suaf在我的代码中删除了该角色,只保留了ADMIN角色,并通过删除过多的“ SUPER”在数据库中修改了自己。如果有人可以向我解释为什么,对于我的文化,我认为这不会造成这种错误。但是无论如何,问题还是解决了!
1 回答
![?](http://img1.sycdn.imooc.com/545869390001b87802200220-100-100.jpg)
缥缈止盈
TA贡献2041条经验 获得超4个赞
发生这种情况是因为角色存储为序列化数组,例如:
a:1:{i:0;s:16:"ROLE_SUPER_ADMIN";}
看到这个了s:16
吗?这意味着在反序列化过程中,php将采用16个符号(正好是ROLE_SUPER_ADMIN
)。
因此,当您删除SUPER
数据时,
a:1:{i:0;s:16:"ROLE_ADMIN";}
并且s:16
是错误的,因为现在您有10个符号而不是16个。但是php尝试获取16,这会导致错误。
这使我们得出结论,编辑原始数据不是一个好主意。
- 1 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消