которое в базе имеет тип smallint, но значения по факту только 0 и 1.
В сущности я хочу привести его сразу к boolean.
1. Если я пишу так:
/** @ORM\Column(type="smallint", name="example") */
private bool $isExample = false;
то при любом (!) вызове метода flush() доктрина пытается сохранить эту сущность, хотя ничего не менялось.
2. Если я пишу так:
/** @ORM\Column(type="boolean", name="example") */
private bool $isExample = false;
то при вызове изменении этого флага и попытке сохранения в бд падает ошибка:
SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: "t"
3. Если же я пишу так:
/** @ORM\Column(type="smallint", name="example") */
private int $isExample = 0;
и в сеттере-геттере привожу к boolean то, логично, всё работает... но выглядит некрасиво.
Может я где-то что-то упускаю?
Или в моём случае поможет только кастомный тип?
Больше похоже что неправильно указали версию сервера бд, так как он пытается сохранить t/f а бд не поддерживает
Обсуждают сегодня