为了账号安全,请及时绑定邮箱和手机立即绑定

Symfony 3-注意:unserialize():在偏移量11为28字节时出错

Symfony 3-注意:unserialize():在偏移量11为28字节时出错

PHP
哆啦的时光机 2021-04-25 17:14:43
我不明白,我在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 回答

?
缥缈止盈

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,这会导致错误。

这使我们得出结论,编辑原始数据不是一个好主意


查看完整回答
反对 回复 2021-05-14
  • 1 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信