2015-12-17 6 views
3

В Yii2 мы используем public function rules() { } для проверки, мы используем $model->isNewRecord для режима проверки, я хочу проверить режим в функции правила. Я пробовал $this->isNewRecord, но он не работает.Примените другое правило валидации в редакторе Yii2

+2

показать свой код модели .. –

+3

использования [сценарий] (http://www.yiiframework.com/doc- 2.0/yii-base-model.html # сценарии% 28% 29-detail) –

+1

также проверьте [это] (http://www.yiiframework.com/doc-2.0/guide-structure-models.html#scenarios) о используя сценарии, предложенные @InsaneSkull –

ответ

2

Вы применяете различные правила валидации с использованием сценариев.

В контроллере вы можете установить различные сценарии при разных действиях или на разных условиях в одном и том же действии.

public function actionRegister(){ 
    $model = new User; 
    $model->scenario = 'register'; 
} 

Вы можете применять различные правила проверки для конкретных сценариев в модели

class User extends ActiveRecord { 

public function rules() 
{ 
    return [ 
     // email required in "register" scenario 
     [['email'], 'required', 'on' => 'register'], 

     // email, password are required in "login" scenario 
     [['email', 'password'], 'required', 'on' => 'login'], 
    ]; 
} 

} 
+0

Я не редактировал это, я отредактировал редактирование, чтобы исправить некоторая плохая грамматика («действия» и «условия» были единственными), которые я заметил, когда утверждал изменения. Я не знаю, кто изменил название действия. –

+0

@MikeWise, без стресса, я удалю свой комментарий выше. Спасибо за ответ. – crafter

Смежные вопросы