2015-02-04 11 views
8

Mam następujące zasady i scenariuszeYii2 reguły poprawności specyficzny do scenariuszy

public function rules(){ 
     return [ 
      [['name','email','password'],'required'], 
      ['email','myvalidation'], 
      ['email','email'], 
      [['name', 'email', 'password'], 'required', 'on' => 'register'], 
      ]; 
    } 




public function scenarios() 
    { 
     $scenarios = parent::scenarios(); 
     $scenarios['login'] = ['name','password','email'];//Scenario Values Only Accepted 
     return $scenarios; 
    } 

chcę rule'myvalidation' stosowana tylko do scenariusza login i wcale nie w drugiej cases.How ten może zostać osiągnięty w Yii2 ?

Odpowiedz

12

Wystarczy określić on nieruchomość w tej reguły walidacji:

['email', 'myvalidation', 'on' => 'login'], 
9

Pamiętaj, możesz też użyć "poza". Na przykład:

public function rules() 
     { 
      return [ 
       [['first_name', 'email', 'phone', 'password'], 'required', 'except' => 'changepassword'], 
       [['password'], 'required', 'on' => 'changepassword'] 
]} 
+0

to co szukam ,,, dziękuję bardzo .. –

+0

co jest changepassword tam? – 981

+0

To jest scenariusz. Ta zasada ma zastosowanie tylko wtedy, gdy ustawisz ten scenariusz :) – Eduardo

Powiązane problemy