Для создания автономного валидатора вам необходимо создать файл 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'], ]; } }
Еще бы понять, как на стороне клиента сделать проверку, через js