【问题标题】:Doctrine array type in Entity and MySQL (Symfony2)Entity 和 MySQL (Symfony2) 中的 Doctrine 数组类型
【发布时间】:2014-03-31 04:03:30
【问题描述】:

我想在我的 Entity User Doctrine 中为后端引擎使用 Roles 用户。如果我修复了实体中的静态角色,我的身份验证工作正常,但如果我想从我的 BDD MySQL 中检索它,我会遇到反序列化错误。

我的 MySQL 字段是文本(或长文本)类型,仅包含一个角色,例如:“ROLE_ADMIN”或“ROLE_USER”。我尝试过对“ADMIN”或“USER”这样的字段进行相同的思考,但没有任何改变。

你能告诉我为什么我的检索角色错误吗?

要点:Entity User Doctrine gist here

【问题讨论】:

  • 你得到的完整错误是什么?
  • Web 浏览器上的图形反馈是:ContextErrorException:注意:unserialize():ArrayType.php 中 5 个字节的偏移量 0 处出错
  • 我已经在数据库中重新加载了我的实体,但错误是一样的。在 symfony 代码中这是这一行: $val = unserialize($value);
  • 你是如何设置角色的? $entity->setRoles(array('ROLE_ADMIN','ROLE_USER'));?
  • 不,因为我只是从 MySQL 导入。我的数据已经存在于数据库中。

标签: mysql symfony doctrine-orm


【解决方案1】:

要解决序列化或反序列化的许多问题,最好的方法是使用夹具数据并直接对其进行编码。

由于您使用特定的编码 php symfony 代码对数据进行编码,因此反序列化继续运行正确且没有错误。

第一次,直接在SQL查询中完成你的数据库效率不是很高。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2022-10-26
    • 2018-06-21
    • 2014-03-07
    • 1970-01-01
    相关资源
    最近更新 更多