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)
메이크업에 더 쉬운 솔루션을 열 NULLABLE, 그래서 당신은 당신의 "콘솔 교리를 : 스키마 : 업데이 트를 --force"실행 한 후 기존 DB 항목 대신 빈 문자열, NULL 값을 얻을 것이다. 그리고 doctrine은 데이터베이스 값 NULL을 Doctrine Type 배열로 변환하는 것을 처리 할 수 있습니다. 그것은 단지 NULL 배열 참조 여야합니다. PHP empty()는 크기가 0 인 배열이나 NULL이 상관 없습니다. 이 같은 문제가 있었다
ALTER TABLE my_table ADD my_new_column LONGTEXT DEFAULT NULL COMMENT '(DC2Type:array)'
관련 문제
- 1. Doctrine2 매핑 오류
- 2. Doctrine2 findBy 관계 개체 트리거 문자열 변환 오류
- 3. Doctrine2 및 지속성 : 계단식 오류
- 4. Doctrine2
- 5. Doctrine2 -
- 6. Doctrine2 NULL 값을 삽입하는 중 오류
- 7. 변환 오류
- 8. Doctrine2 findBy
- 9. CI2 + Doctrine2
- 10. Doctrine2 - relationship
- 11. 는 Doctrine2
- 12. Doctrine2 updateSchema는 외래 키
- 13. Doctrine2 하위 쿼리
- 14. Doctrine2 annotation issue
- 15. Doctrine2 strange persist 예외
- 16. 보관 Doctrine2 날짜 시간 만
- 17. JSF 엔터티 변환 오류 : richion suggestionbox 변환 오류 'null'변환기의 '*'
- 18. Doctrine2 및 Symfony2와 OneToOne 관계
- 19. Rails JSON 변환 오류
- 20. 비주얼 스튜디오 변환 오류
- 21. XMLGregorianCalendar에서 문자열로 변환 오류
- 22. dispatchEvent의 형 변환 오류
- 23. System.EventHandler 변환 오류
- 24. FFmpeg 변환 오류
- 25. JSF 페이지 변환 오류
- 26. C# 변환 오류
- 27. 무효 포인터 변환 오류
- 28. 값 변환 중 오류
- 29. 변환 개체 [] int로 [] 오류
- 30. C# 변환 오류 도움말
: MySQL의에서
, 나는 다음과 같은 SQL 덤프를 얻을. 기존 데이터가있는 엔터티에 필드를 추가 한 후 발생합니다. Doctrine은 필드가 널 (NULL)인지 지능적으로 보는 대신 NULL을 배열로 변환하려고 시도하므로 빈 배열을 반환해야합니다;) 기존 항목을 직렬화 된 빈 배열로 설정하면 완벽하게 작동했습니다. +1 – Nick솔루션을 주셔서 감사합니다. @solarc - 기존 프로젝트에서 사용자를 가져온 후에 비어있는'roles' 필드에 대한 UPDATE 절이 필요했습니다 : http://blog.webdevilopers.net/fosuserbundle-login-error-could- doctrine-type-array/ – webDEVILopers
또는 'N;'과 함께 필드를 설정할 수 있습니다. – Broncha