Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CakePHP] Problem z wymaganymi polami
LordRaven
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 28.03.2009

Ostrzeżenie: (0%)
-----


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.

Ten post edytował LordRaven 31.01.2011, 22:10:17
Go to the top of the page
+Quote Post
fleshgrinder
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 10
Dołączył: 4.11.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował fleshgrinder 8.02.2011, 16:03:35
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:13