Рубрики
Uncategorized

Краткое введение в модельные сценарии в Yii

Автор оригинала: 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/”