30
A
回答
69
你可能从字符串类型变更字段在实体类型的数组,但已经有数据的数据库。它试图将空字符串从数据库转换为数组失败。
如果是开发数据库,只需将其删除并重新创建即可,或者只删除违规行。或者你可以将所有空字符串转换为a:0:{}
(一个序列化的空数组)。
UPDATE table SET column="a:0:{}" WHERE column = "";
-3
您的db表列类型(例如:longtext)不能匹配Doctrine的列类型。 更改列类型。
8
我不希望每个人都在生产数据库上运行SQL。
@ORM\Column(type="array", nullable=TRUE)
在做一个简单的解决方案列空的,所以你运行你的“控制台学说:架构:更新--force”后,对现有数据库的条目会得到,而不是一个空字符串NULL值。而主义可以处理将数据库值NULL转换为Doctrine Type数组。它应该只是一个NULL数组引用。而PHP empty()不关心它的零大小的数组或NULL。
在MySQL中,我得到了如下的sql转储:
ALTER TABLE my_table ADD my_new_column LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)'
相关问题
- 1. doctrine2 ArrayCollection错误
- 2. Doctrine2 findBy关系对象触发器字符串转换错误
- 3. Doctrine2映射错误
- 4. doctrine2:选择错误
- 5. 转换错误
- 6. 转换错误
- 7. Symfony2 + Doctrine2:QueryBuilder中的错误
- 8. C#错误转换
- 9. linq转换错误
- 10. CSS转换错误
- 11. C2664转换错误
- 12. System.EventHandler转换错误
- 13. FFmpeg转换错误
- 14. 如何将SQL查询转换为Doctrine2?
- 15. WebKit转换错误的转换
- 16. sql错误:转换nvarchar转换失败
- 17. XP0006 XQuery转换错误
- 18. 公告板转换错误
- 19. 鉴于SQL转换错误
- 20. XML转换到JSON错误
- 21. selectOneRadio的JSF转换错误
- 22. 隐式转换错误
- 23. 转换错误无效
- 24. 转换为加倍(错误)
- 25. IEnumerable转换错误c#
- 26. 字符转换错误?
- 27. VB6转换为C#错误
- 28. 类型转换错误
- 29. vb.net中的转换错误?
- 30. Xcode,UISwipeGestureRecognizer,ViewController转换错误?
有同样的问题。在向已存在数据的实体添加字段后发生。 Doctrine试图将NULL转换为数组,而不是智能地看到该字段为NULL,因此它应该简单地返回一个空数组;将预先存在的条目设置为序列化的空数组是完美的。 +1 – Nick 2012-01-20 18:09:21
谢谢你的解决方案@solarc - 我需要UPDATE子句用于我的'roles'字段,该字段在从现有项目导入用户后为空:http://blog.webdevilopers.net/fosuserbundle-login-error-could-不转换数据库值到教条类型数组/ – webDEVILopers 2014-07-29 08:46:12
或者你可以设置字段为空'N;' – Broncha 2014-10-16 12:02:27