Бортовой журнал Ктулху
Легче снять с дамы скальп, чем парик.

Сценарии валидации в Yii2

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

Имеется модель для создания и редактирования некоторой сущности.

При создании необходимо заполнять определенный набор полей. При редактировании может изменяться, например, только одно поле.

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

public function rules()
{
return [
[['Name','Channel','Type','State','Destination','Product'], 'required']
];
}

Есть правила для полей, поля обязательны к заполнению. Но нужно сделать так, чтобы некоторые из полей не были обязательны к заполнению.

public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['api'] = ['Channel'];
return $scenarios;
}
$scenarios['api'] = ['Channel'];

Тут указываются поля, которые вообще используются в сценарии, т.е. игнорируются все прочие.

Если указать сценарий api то валидироваться будет только поле Channel.

$model->scenario = 'api';

Рейтинг@Mail.ru
Яндекс.Метрика
Hosting Ukraine
Счетчик PR-CY.Rank
Счетчик PR-CY.Rank