Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]walidacja formularza
dtrevo
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 5.12.2008

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


Przy walidacji wyskakuje bład:


You must pass an array parameter to the clean() method (this validator can only be used as a post validator).


Plik /lib/form/Uzytkownik.class.php

CODE

<?php

/**
* Uzytkownik form.
*
* @package nowy
* @subpackage form
* @author Your name here
* @version SVN: $Id: sfPropelFormTemplate.php 10377 2008-07-21 07:10:32Z dwhittle $
*/
class UzytkownikForm extends sfForm
{
public function configure()
{
$this->setWidgets(array(
'login'=> new sfWidgetFormInput(),
'haslo'=> new sfWidgetFormInputPassword(),
'powtorz'=> new sfWidgetFormInputPassword(),
'mail'=> new sfWidgetFormInput(),
));
$this->widgetSchema->setNameFormat('uzytkownik[%s]');


$this->widgetSchema->setLabels(array(
'login'=> 'Wprowadz login: ',
'haslo'=> 'Wprowadz hasło: ',
'powtorz'=> 'Powtorz haslo: ',
'mail'=> 'Wprowadz mail: '
));


$this->setValidators(array(
'login'=> new sfValidatorPropelUnique(array(
'model'=> 'Uzytkownik',
'column'=> 'login'),
array('invalid'=> 'login o tej nazwie juz istnieje')),
'haslo'=> new sfValidatorString(array(
'required'=>false, 'min_length'=> 6),
array('invalid'=> 'Hasło jest zbyt krótkie!')),
'mail'=> new sfValidatorEmail(array(), array('invalid'=> 'To ma byc prawdziwy E-mail!'))));


}

}



Controller

CODE

<?php

/**
* rejestracja actions.
*
* @package nowy
* @subpackage rejestracja
* @author Your name here
* @version SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
*/
class rejestracjaActions extends sfActions
{
/**
* Executes index action
*
* @param sfRequest $request A request object
*/
public function executeIndex($request)
{
$this->form = new UzytkownikForm();

if ($request->isMethod('post'))
{
$this->form->bind($request->getParameter('uzytkownik'));
if ($this->form->isValid())
{
$dane = $this->form->getValues();
$this->komunikat = 'super';
}
}
}



}



Widok:

CODE

<form method="post" action="<?php echo url_for('rejestracja/index'); ?>">
<?php echo $form; ?>
<input type="submit" name="rejestruj" />
</form>
<?php echo $komunikat; ?>


Pozdrawiam

Ten post edytował dtrevo 6.06.2009, 08:22:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
destroyerr
post
Post #2





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

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


Pewnie to coś w tym błędzie (zresztą jak cały błąd) miało duże znaczenie.
sfValidatorPropelUnique nie może być używany jako walidator dla pojedynczego pola. W Twoim przypadku powinien to być raczej post validator. Zresztą, gdybyś czytał błędy, nie musiabyś czekać na odpowiedź na forum.

@thomas2411 Twój post to po prostu żenada.
Go to the top of the page
+Quote Post
thomas2411
post
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 7
Dołączył: 15.05.2005
Skąd: Rzeszów

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


Cytat(destroyerr @ 7.06.2009, 10:20:16 ) *
Pewnie to coś w tym błędzie (zresztą jak cały błąd) miało duże znaczenie.
sfValidatorPropelUnique nie może być używany jako walidator dla pojedynczego pola. W Twoim przypadku powinien to być raczej post validator. Zresztą, gdybyś czytał błędy, nie musiabyś czekać na odpowiedź na forum.

@thomas2411 Twój post to po prostu żenada.


Żenada...yhym...rozumiem, dziękuję za konstruktywną krytykę.

Autor tematu czyta błędy, ale ich nie zrozumiał, dlatego zwraca się o pomoc na forum. Tak trudno to zrozumieć, trzeba być ironicznym? Wywyższać się że Ty wiesz i rozumiesz a ktoś inny nie? Czujesz się lepszy? Co jest z Tobą nie tak? Zastanów się trochę i przestać się tak dowartościowywać przez to forum. Jak chcesz pomóc to pomóż i daruj sobie jakieś komentarze. Opinie zachowaj dla siebie. Bo nikt Cię o to nie prosił.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.12.2025 - 02:08