Я пытаюсь не вводить поле 0 или 1 для $locked
вручную, поэтому я назначил по умолчанию 0 в @ORM
но это не работает должным образом, поэтому я получаю ошибку ниже. Я, однако, options={"default"=0}
обрабатывал бы его, но появлялся, поскольку он не справляется с этим!
Есть ли способ присвоения 0 defauls, чтобы оператор INSERT не терпел неудачу?
Примечание. Я могу разобраться с методом prePersist()
, __construct()
или $locked = 0;
, но меня интересует решение @ORM для аннотации.
Если аннотация @ORM не обрабатывает его, то какая точка имеет options={"default"=0}
, так как она помечает по умолчанию значение по умолчанию в базе данных? См. Изображение ниже.
Ошибка
DBALException: An exception occurred while executing "INSERT INTO user (username, locked) VALUES (?, ?)" with params ["username", null]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column "locked" cannot be null
Пользовательский объект:
/**
* @var boolean
* @ORM\column(type="boolean", options={"default"=0})
*/
protected $locked;
контроллер
$user: new USer();
$user->setUsername('username');
$em->persist($user);
$em->flush();