Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [symfony1.1] Wyświetlanie komunikatu o niepowodzeniu walidacji
Virti
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 12
Dołączył: 11.01.2005
Skąd: Zduńska Wola

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


Witam wszystkich.
Mam problem z walidacją formularza, mam taką klasę:

  1. <?php
  2. class UserForm extends BaseUserForm
  3. {
  4.   const REQUIRED = 'This field is required';
  5.   
  6.   public function configure()
  7.   {
  8.       parent::setup();
  9.    
  10.       $this->setValidators(array(
  11.       'nick' => new sfValidatorString(array('min_length' => 4, 'required' => true), array('required' => self::REQUIRED)),
  12.     ));
  13.   }
  14. }
  15. ?>



oraz sprawdzanie wysłanego formularza [cała akcja]:

  1. <?php
  2. class userActions extends autouserActions
  3. {    
  4.    public function executeEdit()
  5.    {
  6.        $request = $this -> getRequest();
  7.        $this -> user = $this -> getUserOrCreate();
  8.        $this -> form = new UserForm();
  9.        
  10.        if(sfRequest::POST == $request -> getMethod())
  11.        {
  12.            $this -> form -> bind($request -> getParameter('user'));
  13.            
  14.            //wysłano formularz
  15.            if($this -> form -> isValid())
  16.            {
  17.                exit('ok');
  18.            }
  19.            
  20.        }
  21.        //formularz do wyświetlenia        
  22.        $this->labels = $this->getLabels();
  23.    }
  24. }
  25. ?>


Mój problem polega na tym, że według tego tekstu: http://www.symfony-project.org/book/forms/...Form-Validation po nie przejściu walidacji (czyt. pole nick jest puste lub wartość jest krótsza niż 4) automatycznie powinien zostać wygenerowany formularz wraz z komunikatem o błędzie przy polu, którego on dotyczy. Niestety tak się nie dzieje. winksmiley.jpg Oczywiście formularz zostaje wyświetlony, bo $this -> form -> isValid() = false, jednak żadnego błędu nie dostaję.

Mógłby mi ktoś z tym pomóc? Gdzie mam błąd, ew. w jaki inny sposób wprowadzić walidację formularza dla Symfony 1.1?

Wiem, że ten temat był już wałkowany wiele, wiele razy, niestety nigdzie nie znalazłem rozwiązania mojego problemu.

Pozdrawiam,
Virti

Ten post edytował Virti 11.11.2008, 12:05:56
Go to the top of the page
+Quote Post
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Przede wszystkim strasznie dziwny kod. Pomieszane wersje symfony, nie przekazujesz obiektu usera do obiektu formularza.

Nie wiem czemu nie wyświetlane są błędy, bo nie wiem jak wyświetlasz formularz. Zacznij od pokazania tego.
Go to the top of the page
+Quote Post
Virti
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 12
Dołączył: 11.01.2005
Skąd: Zduńska Wola

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


Formularz jest generowany admin-generatorem, z pliku yml:
Kod
generator:
  class:              sfPropelAdminGenerator
  param:
    model_class:      User
    theme:            default
    
    fields:
      nick:
        required: true
        required_msg: This field is required
        sfStringValidator:
          min: 3
          min_error: This nick is too short (3 characters minimum)
          max: 16
          max_error: This name is too long. (16 characters maximum)
    
      description:
        type: textarea_tag
        params: rich=true
        help: Short description of the user
    
    edit:
      display:
        "Authorization": [nick,_password]
        "Other": [name,description,mail]
        "Watermark": [watermark]

Co do pomieszanych wersji symfony, masz rację, po prostu w pewnym momencie jechałem z dokumentacji i każdej innej strony jaką spotkałem po drodze, stąd ten syf winksmiley.jpg

Pozdrawiam.
Go to the top of the page
+Quote Post
destroyerr
post
Post #4





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Teraz to przegiąłeś. Formularz masz z werjsi 1.1 a admin generator z 1.0. To nie zadziała.

Wersja 1.1 jest wersją przejściową. Zacznij korzystać z 1.2, co prawda beta, ale zanim nauczysz się z tego frameworka korzystać to wszelkie błędy zostaną naprawione. W tej wersji admin generator w pełni działa z nowymi formularzami.
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: 20.08.2025 - 07:29