php - Symfony 3 - 注意:反序列化():28 字节偏移量 11 处出错
问题描述
我不明白,我在 Symfony 3 下工作,当我想转到我的用户管理页面时出现错误:
注意:反序列化():28字节偏移量11处出错
Symfony\Component\Debug\Exception\ ContextErrorException
in vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php (line 58)
然而,在它工作得很好之前,它很奇怪。其他几个人已经有同样的问题,但它从来都不是同一个原因。
我记得在我的项目的无用文件中做了一点空虚,但我删除了未使用的文件,以及我没有使用的注释块。
如果它有助于解决我的问题,这是我的 user.php
谢谢 !
编辑:好的,我只是很愚蠢。我的用户实体继承自 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,这会导致错误。
这使我们得出结论,编辑原始数据不是一个好主意。
推荐阅读
- unit-testing - 当结果是函数时,无法测试为真(编译时出现语法错误。没有这样的 var:...)
- python - 缩放精灵大小
- regex - 如何在 Grafana 中使用正则表达式从指标中提取标签值?
- c++ - C++ 为我的新对象包装子对象数组的正确方法?
- mysql - MySQL 返回时代码不会嵌入
- kotlin - Kotlin ... 在函数参数中,例如来自 Java - setFilterById(long... ids)
- android - 可访问性 - 将焦点设置到列表视图后向左或向右滑动选择视图层次结构的顶部
- ios - watchOS vs iOS 和 Delegate
- java - EntityStoreException:不支持的属性类型 id 9
- sas - SAS如何通过xy等格式输入整数