Yii2 создаем свой валидатор

Для создания автономного валидатора вам необходимо создать файл CountryValidator.php (файл с вашим названием) в каталоге

frontend/components/validators

В созданный файл добавляем код

namespace app\components\validators;
use yii\validators\Validator;

class CountryValidator extends Validator
{
    public function validateAttribute($model, $attribute)
    {
        if (!in_array($model->$attribute, ['USA', 'Web'])) {
            $this->addError($model, $attribute, 'The country must be either "USA" or "Web".');
        }
    }
}

Теперь мы можем вызывать наш созданный валидатор в модели для этого добавляем строку подключения use app\components\validators\CountryValidator. Пример использования

namespace app\models;

use Yii;
use yii\base\Model;
use app\components\validators\CountryValidator;

class EntryForm extends Model
{
    public $name;
    public $email;
    public $country;

    public function rules()
    {
        return [
            [['name', 'email'], 'required'],
            ['country', CountryValidator::className()],
            ['email', 'email'],
        ];
    }
}
comments powered by HyperComments

Похожие статьи: