W środowisku CakePHP reguły sprawdzania poprawności stanowią własność modelu. Oznacza to, że nie ma znaczenia, skąd pochodzą dane: gdy chcesz zapisać je w modelu, będzie musiał przejść walidację.Walidacja jako własność formularza
Zamiast tego w symfony określasz zasady sprawdzania poprawności dla każdego formularza. Ponieważ może istnieć więcej niż jedna postać na model (a formularze mogą obejmować dane z różnych modeli), wynikiem jest to, że dane dla niektórych modeli mogą wymagać przekazania różnych filtrów, zgodnie z formą, z której pochodzą.
Rozumiem, że może to być czasami przydatne, a nawet CakePHP zapewnia metody określania różnych reguł sprawdzania poprawności w locie, jeśli chcesz. Ale to jest wyjątek, a nie zasada. Wydaje mi się, że projektowanie w drugą stronę otwiera drzwi do błędów, w których aktualizujesz swoje zasady sprawdzania poprawności, ale zapomnij sprawdzić wszystkie formularze.
Z drugiej strony jestem pewien, że Fabien Potencier jest mądrzejszy ode mnie i prawdopodobnie pomyślał o tym projekcie. Tak więc pytanie mhy to:
Jakie są dobre powody, dla których należy zatwierdzić na podstawie formularza (z reguły, a nie jako wyjątek)?
Dlaczego upadły? Myślę, że jest to uzasadnione pytanie dotyczące wyboru projektu. : -? – Andrea
"Wydaje mi się, że projektowanie w drugą stronę otwiera drzwi do błędów, w których aktualizujesz swoje zasady sprawdzania poprawności, ale zapomnij sprawdzić wszystkie formularze." Jeśli poprawnie zrozumiem twoją obawę, możesz tego uniknąć, tworząc podklasy swojego formularza i zmieniając tylko walidatory specyficzne dla tej podklasy. Na przykład, aby ograniczyć email do konkretnej domeny dla określonego typu formularza użytkownika, jak w przykładzie circusdei, utwórz 'class UserRegistrationForm rozszerzającą UserForm' i zastąp" globalny "walidator na konkretny. – yitznewton