Composite Validator for Yii2 Framework
BSD-3-CLAUSE License
Composite Validator for Yii2 Framework
Install with composer:
composer require raoptimus/yii2-composite-validator
Create any simple composite validator:
class StringDefaultValidator extends CompositeValidator
{
/** @var string */
public $defaultValue;
/** @var int */
public $max;
/** @var int */
public $min;
/**
* @inheritdoc
*/
protected function validators(): array
{
return [
[StringValidator::class, 'max' => $this->max, 'min' => $this->min],
[DefaultValueValidator::class, 'value' => $this->defaultValue],
];
}
}
Create any form with composite validator
class DefaultForm extends Model
{
/**
* @var string
*/
public $field;
/**
* @inheritdoc
*/
public function rules(): array
{
return [
[['field'], StringDefaultValidator::class, 'max' => 50, 'defaultValue' => 'test'],
];
}
}
Use form validate
$form = new DefaultForm();
$form->validate();
$form->field returns string 'test'