Acemi bir soru.
Ben Symfony'de çok basit LoginForm sınıfı oluşturduk. Kullanıcı alanında kullanıcı adı ve parolayı ekler ve beklendiği gibi çalışmıyor eğer denetler.
// UserLoginForm :: configure()
$this->setWidgets(array(
'username' => new sfWidgetFormInputText(),
'password' => new sfWidgetFormInputPassword(),
));
$this->setValidators(array(
'username' => new sfValidatorString(array('required' => true),
'password' => new sfValidatorString(array('required' => true)
));
// Action :: executeLogin()
$this->loginForm = new UserLoginForm();
if ($request->isMethod('post')) {
$params = $request->getParameter('login');
$this->loginForm->bind($request->getParameter('login'));
if ($this->loginForm->isValid()) {
// ... more code
}
}
Şimdi db adı alanının varlığını kontrol etmek için çalışıyorum ve mevcut değilse, ben invalidate the form istiyorum. Parola aynı: adı + şifre çifti yoksa, ancak farklı bir mesaj ile.
Ben iki olası yollar aranır çözüm bulmak için çalışıyor:
In the action :
- db sorgulama,
- kullanıcı adınızı kontrol,
- (Ben sonuçta HTML hata mesajı istiyorum) form adı alanını geçersiz,
- Aynı kullanıcı adı + şifre kontrolü için
In this case how I can invalidate the form ? How to handle the error message in the template ?
In the form class calling the isValid() method :
- something setValidator eklemek ()
- YA modeli sorgulayabilir özel bir işlevi çağırmak bir post doğrulayıcı eklemek
Bu durumda nasıl Form sınıfının modeli kullanabilir?
Which is the best/fast approach ? Other possibilities ?