yii2 和 php (反)序列化踩坑
程序员文章站
2022-05-09 15:30:21
...
yii2 记录角色的注意事项
今天写 yii2 的 RBAC 应用,打算简单修改原有关于角色的记录,就能切换到新的权限,然后出现了这么个错误:
- unserialize(): Error at offset 36 of 127 bytes
排除了权限结构(权限名称、角色名称、使用的 authManager 类型)问题之后,我想是记录角色的数据改得出问题了。原来记录的权限数据如下:
- O:30:”console\rbac\ProfileAccessRule”:3:{s:4:”name”;s:14:”viewOwnProfile”;s:9:”createdAt”;i:1460293714;s:9:”updatedAt”;i:1460293714;}
既然是 php 的序列化数组,那么原始的数组中,不论下标或值,序列化后均以值(字符串)的形式出现,它们的下标都是自己的长度(所以也解释了O:30 指的是 console\rbac\ProfileAccessRule 这几个词共有30个字母,而以数字表示的不需标出其长度,如 i:1460293714;)。解决方法就很简单了,主要是序列化格式的问题。修改后的权限记录如下:
- O:28:”console\rbac\AdminAccessRule”:3:{s:4:”name”;s:10:”visitAdmin”;s:9:”createdAt”;i:1460293714;s:9:”updatedAt”;i:1460293714;}
写代码这事,也就是搞清楚到底里面是个啥,再从工作步骤上一个个推敲出来囖~希望这些细碎的问题不会困扰到我们,毕竟琢磨这么久,要是不出错,指不定已经写出更加创新的代码来了。
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });以上就介绍了yii2 和 php (反)序列化踩坑,包括了yii,php方面的内容,希望对PHP教程有兴趣的朋友有所帮助。