Yii2: rules. Правила валидации. Примеры
О валидации написано много, но примеров было мало. Исправляюсь.
В этом посте будут только примеры. Если нужна теория и техническое описание, то тебе сюда:
email
В этом посте будут только примеры. Если нужна теория и техническое описание, то тебе сюда:
Yii2: валидация, правила валидации, встроенные валидаторы
Yii2: встроенные валидаторы. Описание, параметры
Yii2. Свой валидатор
boolean
public function rules() { return [ [['active'], 'boolean'], ]; }
captcha
public function rules() { return [ [['verifyCode'], 'captcha', 'captchaAction' => 'user/captcha'], ]; }
compare
public function rules() { return [ [['min_count'], 'compare', 'compareAttribute' => 'max_count', 'operator' => '<='], [['max_count'], 'compare', 'compareValue' => 100, 'operator' => '>'], ]; }
date / datetime/ time
public function rules() { return [ [['date'], 'date', 'format' => 'php:d.m.Y H:i'], [['time'], 'time'], ]; }
default
public function rules() { return [ [['active'], 'default', 'value' => true], ]; }
double / integer / number
public function rules() { return [ [['country_id', 'region_id'], 'integer'], [['living_wage'], 'double', 'numberPattern' => '/^\s*[-+]?[0-9]*[.,]?[0-9]*\s*$/'], [['population'], 'integer', 'min' => 1], ]; }
each
public function rules() { return [ [['data'], 'each', 'rule' => ['string', 'max' => 10]], ]; }
public function rules() { return [ [['email'], 'email'], ]; }
exist
public function rules() { return [ // user_id должен существовать в столбце, который представляется атрибутом "user_id" ['user_id', 'exist'], // user_id требует проверки существования id в модели User (используя значение user_id) ['user_id', 'exist', 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']] ]; }
file
public function rules() { return [ [['img'], 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024 * 1024 * 0.5], ]; }
filter
public function rules() { return [ // обрезаем пробелы [['email', 'password'], 'filter', 'filter' => 'trim', 'skipOnArray' => true], // форматируем номер телефона [['phone'], 'filter', 'filter' => function ($value) { $result = preg_replace("/(\+7)(\d{3})(\d{3})(\d{2})(\d{2})/", "$1 ($2) $3-$4-$5", $value); return $result; }], ]; }
image
public function rules() { return [ [['preview'], 'image', 'extensions' => ['png', 'jpg', 'gif'], 'maxWidth' => 500, 'maxHeight' => 500,], ]; }
in
public function rules() { return [ ['type', 'in', 'range' => [1, 2, 3]], ]; }
match
public function rules() { return [ ['password', 'match', 'pattern' => '/^\S*(?=\S{8,})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$/i'] ]; }
required
public function rules() { return [ ['user_id', 'required'], ]; }
safe
public function rules() { return [ ['text', 'safe'], ]; }
string
public function rules() { return [ ['login', 'string', 'min' => 3, 'max' => 10], ['name', 'string', [3, 10]], ]; }
trim
public function rules() { return [ ['password', 'trim'], ]; }
unique
public function rules() { return [ ['model', 'unique'], ]; }
url
public function rules() { return [ ['link', 'url', 'defaultScheme' => 'http'], ]; }
Комментарии
Отправить комментарий