Hangi validator Symfony'de giriş uygulamak için kullanılmalıdır?

2 Cevap php

Şu anda, benim giriş formu bu gibi görünüyor,

class LoginForm extends BaseFormPropel
{
  public function setup()
  {
    $this->setWidgets(array(
      'login_id' => new sfWidgetFormInput(), 
      'pwd' => new sfWidgetFormInputPassword() 
    ));

    $this->widgetSchema->setLabels(array(
    	'login_id'=>'Login Id',
    	'pwd'=>'Password'
    ));

    $this->widgetSchema->setNameFormat('member[%s]');

    $this->setValidators(array(
      'login_id' => new sfValidatorPropelChoice(array('model' => 'Member', 'column' => 'login_id', 'required' => true)), 
      'pwd' => new sfValidatorPropelChoice(array('model' => 'Member', 'column' => 'pwd', 'required' => true))
    ));

    $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);

    parent::setup();
  }


  public function getModelName()
  {
    return 'Member';
  }

}

SfValidatorPropelChoice sadece kullanıcı sütununda mevcut mu bir değer girer sağlar çünkü Ama bu, yanlış bir uygulama olduğunu. Veritabanı, aşağıdaki satırları içeriyorsa, bu demektir

login_id | pwd
john, 12345
peter, 67890

A user using john and 67890 to login will succeed. My question is that, which validator should I use to correct the problem?

2 Cevap

Bu işi yapmak için güzel bir yolu yoktur. SfGuard form gelen verileri doğrular ve kullanım formu veri kullanıcı oturum sonra, burada örnek

if ($this->form->isValid()) {
$values = $this->form->getValues();
$this->getUser()->signin($values['user']); }

Ben bu yüzden, size kod ile bu kapak koyma işlemini ele [1] sfValidatorAnd böyle bir şey yapıyorum, belki biliyorum ama web uygulaması çok önem taşımaktadır şey proccess giriş yok.

http://www.symfony-project.org/forms/1_2/en/B-Validators#chapter_b_sub_sfvalidatorand

Bir kerede 2 form alanları doğrulamak için çalışıyoruz çünkü, kendi post-doğrulayıcı kullanmalısınız. Yoksa sfGuardPlugin kullanın ve bu soruyu unutabilir.