【问题标题】:Notice: unserialize() for symfony2 ( connection user )注意:symfony2(连接用户)的 unserialize()
【发布时间】:2013-02-22 12:56:22
【问题描述】:

点击提交按钮进行连接时出现此错误。

Notice: unserialize(): Error at offset 0 of 9 bytes in /var/www/Blog/Symfony/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php line 48

要点:https://gist.github.com/AnthonyPavaux/5104546

【问题讨论】:

  • 你有一个文件名和一个行号。为什么不从那里开始调试呢?
  • 第 48 行 ArrayType.php 是函数 return serialize ($ value); 但它属于 Symfony2 Doctrine 中的库,所以我不能碰
  • 在尝试持久化实体之前,您将$roles 设置为什么?

标签: php sql symfony bundle


【解决方案1】:

您可以替换此数组字段中的字符串。

我的“角色”专栏也遇到了这个问题。

将里面的字符串替换为:

a:0:{}

对于用户角色,并且

{i:0;s:10:"ROLE_ADMIN";}

管理员角色更正了我的问题。

【讨论】:

  • 其他角色:a:1:{i:0;s:16:"ROLE_SUPER_ADMIN";}, a:1:{i:0;s:11:"ROLE_AUTEUR";} 等...
  • 谢谢,这是导致错误的单个 qoutes。改成双打就解决了。
【解决方案2】:

我遇到了同样的错误,因为我最近将我的一个实体字段更改为一个数组。这个错误在列出所有实体的页面上弹出,但是因为我从来没有更新这个字段的数据库值(它们仍然是整数,当 php 期望序列化数组格式时),它会因为这个错误而死。

【讨论】:

    【解决方案3】:

    我遇到了同样的错误,但是在安装 fos_user 时,在我的情况下,我需要一个像“a:{}”这样的 json 格式值,但在我的字段中,由于某种原因我得到了“(排除)”,所以当我试图弄清楚什么时碰巧我检查了一个数据库备份,发现我需要的是插入一个“a:{}”值,一切都很顺利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      • 2012-07-30
      • 2017-09-14
      • 1970-01-01
      • 2013-12-04
      相关资源
      最近更新 更多