Validation - uniqcle/Yii2 GitHub Wiki

Validators Crib

['categories', 'each', 'rule' => ['integer']],
[['placeId'], 'required'],
[['id'], 'integer'],
[['description'], 'string'],
['rating'], 'in', 'range' => [1, 2, 3](/uniqcle/Yii2/wiki/'rating'],-'in',-'range'-=>-[1,-2,-3),
[['someDate'], 'date', 'format' => 'php:Y-m-d'],
[['somePattern'], 'match', 'pattern' => '/^[a-zA-Z0-9_-]+$/'],
['endTime', 'compare',
                'compareAttribute' => 'startTime',
                'operator' => '>',
                'message' => Yii::t('validation', 'endtime must be greater than starttime'),
],
[['siteAddress'], 'url'],
[['link'], 'url', 'defaultScheme' => 'http'],  // Validates URL. Prepend scheme if neede

Custom Validation Function

Собственные валидаторы ничего не должны возвращать. Единственное в случае ошибки - вызывать метод addError() в случае ошибки.

...
    public function rules(){

        return [
            ['name', 'required'],
            ['email', 'myRule']
        ];
    }

    public function myRule($attr){
        if(!in_array($this->$attr, ['[email protected]', '[email protected]'])){
            $this->addError($attr, 'Неправильная почта');
        }
    }
...