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
- 2. doctrine2 ArrayCollection錯誤
- 3. Doctrine2 findBy關係對象觸發器字符串轉換錯誤
- 4. Doctrine2映射錯誤
- 5. doctrine2:選擇錯誤
- 6. 轉換錯誤
- 7. 錯誤轉換
- 8. 轉換錯誤
- 9. 轉換錯誤
- 10. 轉換錯誤?
- 11. 錯誤的查詢 - Doctrine2/Symfony2
- 12. Doctrine2 - HasLifecycleCallbacks - 語義錯誤
- 13. Symfony2 + Doctrine2:QueryBuilder中的錯誤
- 14. Doctrine2插入NULL值錯誤
- 15. 錯誤轉換result.java.lang.NullPointerException
- 16. linq轉換錯誤
- 17. MFC轉換錯誤
- 18. C++轉換錯誤
- 19. System.EventHandler轉換錯誤
- 20. CSS轉換錯誤
- 21. WPF轉換錯誤
- 22. FFmpeg轉換錯誤
- 23. 錯誤轉換json
- 24. CSS轉換錯誤
- 25. Ascii轉換錯誤
- 26. stringstream轉換錯誤
- 27. C#轉換錯誤
- 28. CSS轉換錯誤
- 29. C#錯誤轉換
- 30. d3轉換錯誤
有同樣的問題。在向已存在數據的實體添加字段後發生。 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