Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2] doctrine annotation "nullable=true"
Foxx
post
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:

  1. /**
  2.  * @ORM\Column(type="string", length=255)
  3.  */
  4. protected $firstName;


Błąd znika po dodaniu parametru nullable=true i przegenerowaniu encji:

  1. /**
  2.  * @ORM\Column(type="string", length=255, nullable=true)
  3.  */
  4. protected $firstName;


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?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 00:36