Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Problem z sfValidatorAnd, sfValidatorRegex
Forum PHP.pl > Forum > PHP > Frameworki
f4ll3ns3raf1n
Witam Was,
przygodę z SF zacząłem z półtora miesiąca temu, metodą prób i błędów wiele problemów udało mi się samemu rozwiązać
ale teraz nie potrafię
tworze ContactForm.php, w którym będą pola email i telefon.
potrzebuję, by jedno z tych pól było uzupełnione, oczywiście poprawnie, lub oba poprawnie,
z tym, że pole telefon oprócz minimalnej i maksymalnej długości, oczywiście sprawdza czy w numerze występują same cyfry.

narazie próbuję sam telefon zwalidować, po min, max, required, pattern i nie idzie mi,
po wpisaniu 9 samych "2", ("222222222") powinno numer przyjąc, a wywala mi info Telefon musi się składać z samych cyfr.'
zresztą przykład na stronie http://ml0dy.linuxpl.com/kontakt (tutaj właśnie to próbuję dograć)
prosze o pomoc

  1. $this->setValidators(array(
  2. 'imie_nazwisko' => new sfValidatorString(
  3. array('required' => true, 'trim' => true, 'min_length' => 7),
  4. array('min_length' => 'Minimalna długość - %min_length% znaków', 'required' => 'Musisz wpisać imię i nazwisko')),
  5.  
  6. 'telefon' => new sfValidatorAnd(array(
  7. new sfValidatorString(
  8. array('required' => false, 'trim' => true, 'min_length' => 9, 'max_length' => 14),
  9. array('min_length' => 'Minimalna długość - %min_length% znaków', 'max_length' => 'Maksymalnie %max_length% znaków', 'required' => 'Musisz wpisać imię i nazwisko')),
  10. new sfValidatorRegex(
  11. array('pattern' => '/^[0-9]{9-14}$/'),
  12. array('invalid' => 'Telefon musi się składać z samych cyfr.'))
  13. )),
  14. 'email' => new sfValidatorEmail(),
  15. 'temat' => new sfValidatorChoice(array('choices' => array_keys(self::$tematy))),
  16. 'tresc' => new sfValidatorString(
  17. array('required' => true, 'trim' => true, 'min_length' => 25),
  18. array('required' => 'Musisz wpisać treść wiadomość!', 'min_length' => 'Treść musi zawierać conajmniej %min_length% znaków.')),


swoją drogą, nie wiem jak poźniej mam zwalidować, czy któreś z pól, wstępnie zwalidowanych, jest nie-puste (warunek walidacji - conajmniej jedno z dwóch)
Crozin
1) Po co w ogóle używasz dwóch walidatorów? Przecież tym sfValidatorString nie robisz niczego czego byś w sfValidatorRegex nie mógł zrobić.
2) W PCRE do określenia długości zbioru używa się następującej składni: {min,max}, nie {min-max}
3) Zarówno telefon jak i email ustawiasz jako opcjonalne. Na końcu dodajesz walidator (setPostValidator), gdzie zdefiniujesz już sobie samemu walidator, który sprawdza czy przynajmniej jedno z pól jest ustawione.
f4ll3ns3raf1n
serdecznie dziękuję, sprawa rozwiązania, wczoraj widocznie już za długo siedziałem przy kompie, dziś sam zauważyłem ten problem z min,max :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.