Validator that will run on switch-case-like conditional
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist petrabarus/yii2-switchcasevalidator "*"
or add
"petrabarus/yii2-switchcasevalidator": "*"
to the require section of your composer.json
file.
This package require
- Latest Yii2
- PHP 5.4 or later
Add something like this in the model rules()
.
//Assuming the model has attribute case, field1, and field2.
//Each rule group will be validated when the case attribute match the cases.
public function rules() {
['case', PetraBarus\Yii2\SwitchCaseValidator\Validator::class,
//For PHP 5.4, you can use PetraBarus\Yii2\SwitchCaseValidator\Validator::className() or
// string 'PetraBarus\Yii2\SwitchCaseValidator\Validator'
'cases' => [
1 => [
['field1', 'required'],
],
2 => [
['field1', 'compare', 'compareValue' => 'Test']
],
3 => [
['field1', 'compare', 'compareValue' => 'Value 1'],
['field2', 'email']
]
],
//This will be executed if no cases matches.
'default' => [
['field1', 'compare', 'compareValue' => 'Value 2'],
['field1', 'compare', 'compareValue' => 'Value 4'],
]
]
}
Or see the test files.
To run test, execute
$ phpunit