Staram się unikać wprowadzania lub dla $locked
pola ręcznie więc przypisany domyślny jako w @ORM
adnotacji jednak to nie działa zgodnie z oczekiwaniami, więc otrzymuję błąd poniżej. Ja jednak poradziłbym sobie z tym, ale wygląda na to, że go nie obsługuje!Ustawienie na polu z adnotacjami ORM i obsługi zapytań
Czy istnieje sposób przypisania 0 przez defaul, aby instrukcja INSERT nie zawiedzie?
Uwaga: mogę rozwiązać to z prePersist()
metody, __construct()
lub $locked = 0;
tak dalej, ale to, co mnie interesuje jest @ORM rozwiązanie adnotacji.
Jeśli adnotacja @ORM go nie obsługuje, jaki jest sens posiadania options={"default"=0}
, ponieważ oznacza ona domyślną wartość pól w bazie danych? Zobacz zdjęcie poniżej.
Błąd:
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
Podmiot użytkownika:
/**
* @var boolean
* @ORM\column(type="boolean", options={"default"=0})
*/
protected $locked;
Controller:
$user: new USer();
$user->setUsername('username');
$em->persist($user);
$em->flush();
O ile wiem, nie ma adnotacji, który obsługuje to. – dmnptr
Wypróbuj '@ORM \ column (type =" boolean ", options = {" default "= false})'. Czy to zrobi? – dmnptr
Nie, to też nie. – BentCoder