source

독트린 부울 형식을 false로 설정할 수 없습니다.

manycodes 2023. 9. 3. 16:24
반응형

독트린 부울 형식을 false로 설정할 수 없습니다.

설정할 수 없습니다.false유형이 다음과 같은 엔티티 열에 대한 값boolean.

/**
 * @ORM\Column(type="boolean")
 */
private $isActive;

JSON 전송 중:

{myEntity: {isActive: false}}

...원인:

무결성 제약 조건 위반: 1048 열 'is_active'는 null일 수 없습니다.

보내는 동안:

{myEntity: {isActive: 0}}

...잘 될 것입니다.

스택 오버플로에 대한 몇 가지 유사한 답변이 있지만 어떤 솔루션도 작동하지 않았습니다.

원시 열

+--------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra           |
+-------------+--------------+------+-----+---------+-----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment  |
| is_active   | tinyint(1)   | NO   |     | NULL    |                 |
+-------------+--------------+------+-----+---------+-----------------+

편집

아래의 제 답변을 읽으십시오.독트린 버그가 아니라 MariaDB 10.2 시리즈입니다.

안타깝게도 이것은 주요 문제에 대한 해결책은 아니지만 어느 정도의 통찰력을 제공할 것입니다.

번역 중 문제 발생false로.nullMariaDB 10.2 시리즈에서 발생합니다(10.0 시리즈를 테스트하지 않음).

설명된 문제는 MySQL 또는 MariaDB 5.5 시리즈에서 발생하지 않고 변환됩니다.false로.false바른 방법으로

특별히 MariaDB 10.2 버그에 대해 다른 이슈를 만들 예정입니다.

또는 다음 작업을 수행하는 것을 평가해야 합니다.

/**
 * @ORM\Column(type="boolean", nullable=true)
 */
private $isActive;

클래스에서 값을 초기화하거나 초기화할 기회가 항상 있는 것은 아닙니다.

업데이트:

저는 제 대답이 틀렸다는 것을 깨달았습니다.생성자에서 속성을 초기화하거나 자동으로 세터를 호출할 수 있습니다.어쨌든 당신은 당신의 실체가 바뀌었다고 독트린의 작업 단위를 "속여야" 합니다.

언급URL : https://stackoverflow.com/questions/50027465/doctrine-boolean-type-cant-be-set-to-false

반응형