if($request->getMethod() == 'POST')//wysłany formularz { $form->bindRequest($request); $this->validate($form, $formFieldDefinitions); if($form->isValid())//formularz jest prawidłowy { //wysyłam formularz do bazy } }
private function validate($form, $formFieldDefinitions) { $formData = $form->getData(); forach(pola as pole)//w tej pętli sprawdzam czy pole jest nieprawidłowe. Jeśli tak, to dodaje błąd. { $field = $form->get(tutaj nazwa pola); if(pole nieprawidłowe) { $field->addError($error) ; } } }
To oczywiście tylko kluczone fragmenty kodu.
To działa zarąbiście, sam sobie waliduje i dodaje błędy do formularza i te błędy się wyświetlają.
Ale dodałem sobie sobie pole integer i jeśli jest ono błędnie wypełnione, to pokazuje "This value is not valid". Skąd się bierze ten błąd ? Ja mam swoją walidację i nie korzystam z żadnej innej, a tu symfony nadgorliwie mi go waliduje. Ja chciałbym mieć swój błąd "wpisana wartość nie jest liczbą całkowitą", albo coś takiego. Problem w tym, że wtedy metoda addError nie działa (nie mogę dodać swojego błędu) i wyświetla się tylko ten standardowy błąd This value is not valid
Czy da się wyrzucić tą walidacje ?