To ma sens mieć walidacji w modelach, ale walidacja powinna być tylko tam, aby upewnić się, że nie oszczędzają żadnych uszkodzonych danych.
Validator
jest w Controller
, ponieważ służy do obsługi wejścia i generowania danych wyjściowych. Jeśli chcesz dokonać sprawdzenia poprawności w Model
, musisz albo zwrócić wartość false, i pokazać użytkownikowi najbardziej losowy komunikat o błędach dotyczących nieprawidłowych danych. Można również zwrócić kilka kine tablic zawierających wszystkie błędy, które są generowane, ale to jest coś, czego Model nie powinien robić. Lub możesz rzucić wyjątek, który jest czymś, co należy zrobić, gdy model próbuje wykorzystać nieprawidłowe dane, ale zabija aplikację, która nie jest pożądanym rozwiązaniem dla walidatora formularzy.
Podczas walidacji formularza w sterowniku, można zrobić wszystko, co chcesz z komunikatami o błędach, bez zmiany przeznaczenia modelu.
W modelu można wykonać sprawdzanie poprawności, aby upewnić się, że nie popełniono błędu, co spowoduje uszkodzenie bazy danych. Ponieważ w takim przypadku aplikacja powinna zostać zamknięta.
Tak więc w celu udzielenia odpowiedzi na to pytanie: Walidacja w modelu ma sens, aby uniknąć uszkodzenia danych, ale jeśli chcesz przekazać użytkownikowi opinię na temat nieprawidłowych danych wejściowych, powinien on znajdować się w kontrolerze.
Nie powiedziałbym oficjalnie. Jest to po prostu łatwiejszy sposób na pokazanie walidatora, ponieważ ustawienie odpowiedniej usługi sprawdzania poprawności jest nieco bardziej skomplikowane. Istnieje wiele przykładów tam, a także pakiety, które przeprowadzają walidację w samym modelu lub jako oddzielna usługa. Zajrzyj do tych. –
Jedną z zalet sprawdzania poprawności modelu jest to, że sprawdzanie poprawności zostało również zatwierdzone. –
Chciałbym powiedzieć oficjalnie, ponieważ jest to jedyny sposób sugerowany przez oficjalną dokumentację. Jeśli to nie jest oficjalne, co by to było? – igorsantos07