Для создания автономного валидатора вам необходимо создать файл 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