petrabarus/yii2-switchcasevalidator

Validator that will run on switch-case-like conditional

1.0.1 2015-09-30 03:47 UTC

This package is auto-updated.

Last update: 2024-03-22 14:46:14 UTC


README

Validator that will run on switch-case-like conditional

Latest Stable Version Total Downloads Latest Unstable Version Build Status

Installation

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.

Requirement

This package require

  • Latest Yii2
  • PHP 5.4 or later

Usage

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.

Test

To run test, execute

  $ phpunit