我不明白,我在 Symfony 3 下工作,当我想转到我的用户管理页面时遇到错误:
Notice: unserialize(): Error at offset 11 of 28 bytes
Symfony\Component\Debug\Exception\ ContextErrorException
in vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php (line 58)
然而,在效果很好之前,却很奇怪。其他几个人已经遇到了同样的问题,但原因绝非相同。
我记得在项目的无用文件中做了一些空处理,但我删除了未使用的文件以及我未使用的注释 block 。
如果它有助于解决我的问题,这是我的 user.php
谢谢!
编辑:好吧,我只是很愚蠢。 我的 User 实体继承自 FOSUserBundle。在我的数据库中,我有一个具有 SUPER_ADMIN 角色的用户。与此同时,Suaf 在我的代码中删除了这个角色,只留下 ADMIN 角色,并且我在数据库中修改了自己,删除了太多的“SUPER”。我不认为它会产生这种错误,如果有人可以向我解释为什么,对于我的文化。
但无论如何问题还是解决了!
最佳答案
发生这种情况是因为角色存储为序列化数组,例如:
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,这会导致错误。
这使我们得出结论,编辑原始数据不是一个好主意。
关于php - Symfony 3 - 通知 : unserialize(): Error at offset 11 of 28 bytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55824784/