Yii2 требовал проверки при обновлении

У меня есть форма Yii2, содержащая поля формы в зависимости от действия страницы. Ex. При create действия появляется несколько полей, и при update действия появляется мало. Я хочу добавить требуемую проверку на основе этого сценария.

Ex.

 <?= $form->field($model, 'unique_identifier')->textInput(['maxlength' => 45]) ?> 

Я показываю это поле только тогда, когда action => 'update' .

Теперь я хочу добавить требуемую проверку для этого, и я попробовал это:

 [['unique_identifier'], 'required', 'on' => 'update'], 

Но над валидацией не работает. Если я удалю on=>update то его проверку на сценарии создания и обновления.

Любая помощь будет оценена по достоинству.

ActiveRecord автоматически не устанавливает сценарий при обновлении или создании элементов. Вы должны переопределить метод update() в своей модели и установить сценарий, который вам нужен. Например, в вашем случае

 public function update($runValidation = true, $attributeNames = null) { $this->scenario = 'update'; return parent::update($runValidation, $attributeNames); } 

Также вы можете установить сценарий в своем actionUpdate

 public function actionUpdate($id) { $model = $this->findModel($id); $model->scenario = 'update'; //load data from request, save model etc. }