![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Podczas zapisywania formularza otrzymuję komunikat od SQL, że wartości pól nie mogą przyjmować wartości null. Dotyczy to wszystkich pól, w których nie wpisałem żadnej wartości. Nie jest to komunikat walidacji, która przechodzi poprawnie tylko error od SQL. Definicje wyglądają tak:
Błąd znika po dodaniu parametru nullable=true i przegenerowaniu encji:
No i teoretycznie wszystko fajnie, ale nie rozumiem trochę tego, że mimo braku walidacji pola nie mogą przyjmować wartości null jeżeli explicite nie dodam im parametru nullable. Czy tak po prostu jest, czy może ja czegoś nie uwzględniam? A jeżeli wszystko jest ok to dlaczego nie ma o tym nic w dokumentacji? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Domyślnie obiekt Doctrine\ORM\Mapping\Column ma właściwość nullable ustawioną na FALSE: https://github.com/doctrine/doctrine2/blob/.../Column.php#L65 Stąd też wygenerowana kolumna posiada atrybut NOT NULL. Próbując wrzucić tam później NULLa oczywistym jest, że baza danych wyrzuci błąd.
2. Ja tutaj nie widzę żadnej walidacji, ani adnotacji dot. reguł walidacji, więc ciężko jest się tutaj na ten temat wypowiadać - pokaż jakiś kod. 3. Mechanizm walidacji i baza danych nie mają ze sobą kompletnie nic wspólnego. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ok, punkt 1. wyjaśnił mi, że domyślnie nullable=false - czyli rozumiem, że przy każdej kolumnie trzeba pisać nullable=true i generalnie sprawa załatwiona.
Co do punktu 2. to właśnie tak wygląda mój kod, nie ma tu walidacji i o to właśnie chodziło - chciałem jasno pokazać, że to nie jakaś moja walidacja mnie zatrzymuje. Dzięki za odpowiedź. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat czyli rozumiem, że przy każdej kolumnie trzeba pisać nullable=true i generalnie sprawa załatwiona. Jeżeli występowanie NULLi w danej kolumnie bazy danych jest dla Ciebie OK, to chyba tak.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:52 |