我不明白,我在 Symfony 3 下工作,当我想转到我的用户管理页面时,我刚刚收到错误:
注意:unserialize():28 字节偏移量 11 处出错
Symfony\Component\Debug\Exception\ ContextErrorException
in vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php (line 58)
Run Code Online (Sandbox Code Playgroud)
然而,在效果很好之前,却很奇怪。其他几个人已经遇到了同样的问题,但原因绝非相同。
我记得在项目的无用文件中做了一些空处理,但我删除了未使用的文件以及我未使用的注释块。
如果它有助于解决我的问题,这是我的 user.php
谢谢 !
编辑:好吧,我只是很愚蠢。我的 User 实体继承自 FOSUserBundle。在我的数据库中,我有一个具有 SUPER_ADMIN 角色的用户。与此同时,Suaf 在我的代码中删除了这个角色,只留下 ADMIN 角色,并且我在数据库中修改了自己,删除了太多的“SUPER”。如果有人能向我解释为什么,对于我的文化来说,我不认为它会产生这种错误。
但无论如何问题还是解决了!
发生这种情况是因为角色存储为序列化数组,例如:
a:1:{i:0;s:16:"ROLE_SUPER_ADMIN";}
Run Code Online (Sandbox Code Playgroud)
看到这个了s:16吗?这意味着在反序列化期间 php 将采用 16 个符号(恰好是ROLE_SUPER_ADMIN)。
所以,当你删除SUPER你的数据时
a:1:{i:0;s:16:"ROLE_ADMIN";}
Run Code Online (Sandbox Code Playgroud)
是不正确的,因为现在您有10 个s:16符号,而不是16 个。但是 php 尝试获取 16,这会导致错误。
这使我们得出结论:编辑原始数据不是一个好主意。
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |