Автор оригинала: David Wong.
В Yii проверка полей модели имеет концепцию сценария, который может устанавливать разные правила проверки в разных сценариях. В Yii сценарий по умолчанию имеет значение по умолчанию, которое реализовано следующим образом
Далее я использую таблицу пользователей с полем имя_пользователя, пароль.
Простые правила заключаются в следующем
public function rules() {
return [
[['user_name', 'password'], 'required'],
[['user_name', 'password'], 'string', 'max' => 255],
];
}1:
Если нам нужно проверить поля имя_пользователя и пароля при добавлении, при обновлении проверяется только поле имя_пользователя.
На этом этапе мы можем переопределить метод yii базовая модель:: сценарии () в модели, чтобы настроить поведение.
public function scenarios()
{
return [
'create'=> ['user_name','password'], //create represents the new scenario
'update'=> ['user_name'], //update represents the update scenario
];
}В соответствии с правилами сценария, установленными выше, нам нужно только установить указанный сценарий, когда мы добавляем и обновляем его.
// Scenarios are set as attributes $model = new User; $model->scenario = 'create'; // Scenarios are set by constructing initialization configurations $model = new User(['scenario' => 'create']);
В соответствии с вышеизложенным, указанные поля могут быть проверены в различных сценариях.
Два:
Мы можем использовать атрибут on в правиле для задания различных сценариев
public function rules()
{
return [
[['id'], 'integer'],
[['user_name'], 'required'],
[['password'], 'required', 'on' => 'create']
[['user_name', 'password'], 'string', 'max' => 255],
];
}Поле пароля должно быть заполнено в соответствии с приведенным выше в сценарии создания
Три:
Используйте базовую модель yii:: validate () для проверки полученных данных
$model = new User(); $model->validate(['user_name'])
Проверьте имя пользователя с помощью метода validate, который возвращает значение true или false
Оригинал: “https://developpaper.com/a-brief-introduction-to-model-scenarios-in-yii/”