Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CakePHP] Problem z wymaganymi polami
Forum PHP.pl > Forum > PHP > Frameworki
LordRaven
Witam,
Znalazłem i przerobiłem sobie nieco metodę która pozwala na definiowanie więcej niż jednej tablicy z regułami walidacji,
jako że nie we wszystkich akcjach niektóre pola są wymagane. Wszystko działa bez problemu (reguły pobierane są z innej tablicy np. $validateLostpassword niż ze defaultowej $validate).
Ale jest teraz problem ze zaznaczaniem pól wymaganych :/. Tak jak by cake przed wyświetleniem strony szukał to daje we defaultowej tablicy, i "zaznaczał" pogrubiał wymagane pola np. Adres email* ,
chociaż w regule jest ustawione że pole nie jest wymagane. Po naciśnięciu submit, jeśli jakaś reguła nie zostanie spełniona, i formularz napisze błąd z reguły, to formularz już dobrze zaznacza wymagane pola.
Ale jak wchodzi się normalnie to pozuje źle, dopiero po przesłaniu danych pokazuje dobrze. Chyba trzeba będzie coś nadpisać i dodać do beforeRender(), tylko gdzie ?

  1. function validates($options = array()) {
  2. $action = 'validate' . Inflector::camelize(Router::getParam('action'));
  3.  
  4. if (isset($this->$action) && isset($this->validateMerge)) {
  5. $this->validate = $this->$action;
  6.  
  7. } else if (isset($this->$action)) {
  8. $this->validate = array_merge($this->validate, $this->$action);
  9. }
  10. $errors = $this->invalidFields($options);
  11.  
  12. if (is_array($errors)) {
  13. return count($errors) === 0;
  14. }
  15. return $errors;
  16. }

Dzięki za wszelką pomoc i pomysły.
fleshgrinder
Cytat(LordRaven @ 31.01.2011, 22:08:18 ) *
Witam,
Znalazłem i przerobiłem sobie nieco metodę która pozwala na definiowanie więcej niż jednej tablicy z regułami walidacji,
jako że nie we wszystkich akcjach niektóre pola są wymagane.


Może warto rozważyć nieco mniej eleganckie, ale prostsze koncepcyjnie rozwiązanie i zdefiniować wszystkie reguły walidacji we własności $validate modelu, a walidowane pola określać w kontrolerze?

$this->Model->validates(array('fieldList' => array('lista', 'pol', 'do', 'zwalidowania')));

http://book.cakephp.org/view/1182/Validati...-the-Controller
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.