Git Product home page Git Product logo

yii2-validators's Introduction

yii2-validators

Stable Version Unstable Version License Total Downloads Monthly Downloads Daily Downloads

This extension adds new model validator components for Yii2 frameworkor and/or enhances existing Yii2 model validators.

The EmailValidator extends the yii\validators\EmailValidator component to support multiple email inputs for Yii2 framework. In addition this validator allows setting the multiple property and setting the min and max number of email addresses allowed. This is useful for adding validation rules to your attributes in the model and also adds enhanced client validation support for ActiveForm inputs at runtime via Javascript.

The PhoneValidator extends the yii\validators\Validator component using libphonenumber-for-php based on Google's libphonenumber library.

The CardValidator extends the yii\validators\Validator component. It validates standard debit and credit card number inputs using Luhn's checksum validation. It also helps auto detect the card types and additionally validating the card holder name, expiry date and CVV entered.

Demo

You can see detailed documentation and demos on usage of this extension.

Installation

The preferred way to install this extension is through composer.

NOTE: Check the composer.json for this extension's requirements and dependencies. Read this web tip /wiki on setting the minimum-stability settings for your application's composer.json.

Either run

$ php composer.phar require kartik-v/yii2-validators "@dev"

or add

"kartik-v/yii2-validators": "@dev"

to the require section of your composer.json file.

Usage

EmailValidator

This class extends the yii\validators\EmailValidator class to offer multiple email validation support. The EmailValidator class can be easily used via the alias k-email in your model validation rules. For example in your model you can use this as shown below:

use yii\db\ActiveRecord;

class EmailModel extends ActiveRecord {
    /**
     * @return array the validation rules.
     */
    public function rules()
    {
        return [
            [['to', 'cc', 'bcc'], 'k-email', 'allowName' => true, 'enableIDN' => true, 'max' => 5],
        ];
    }
}

In your view where you render the model inputs with ActiveForm - you may set enableClientValidation to control whether you need client side validation.

// views/email/send.php

use yii\widgets\ActiveForm;

$form = ActiveForm::begin(['enableClientValidation' => true]);
echo $form->field($model, 'to')->textInput();
echo $form->field($model, 'cc')->textInput();
echo $form->field($model, 'bcc')->textInput();
// other fields
ActiveForm::end();

PhoneValidator

This class extends the yii\validators\Validator class to validate phone numbers using libphonenumber-for-php based on Google's libphonenumber library. The PhoneValidator class can be easily used via the alias k-phone in your model validation rules. For example in your model you can use this as shown below:

use yii\db\ActiveRecord;

class ContactModel extends ActiveRecord {
    /**
     * @return array the validation rules.
     */
    public function rules()
    {
        return [
            [['phone1'], 'k-phone', 'countryValue' => 'US'],
            [['phone2'], 'k-phone', 'countryAttribute' => 'country', 'applyFormat' => false],
        ];
    }
}

CardValidator

The CardValidator extends the yii\validators\Validator component. It validates standard debit and credit card number inputs using Luhn's checksum validation. It also helps auto detect the card types and additionally validating the card holder name, expiry date and CVV entered. The CardValidator class can be easily used via the alias k-card in your model validation rules. For example in your model you can use this as shown below:

use yii\db\ActiveRecord;

class PaymentModel extends ActiveRecord {
    /**
     * @return array the validation rules.
     */
    public function rules()
    {
        return [
            [
                ['card_number'], 
                'k-card', 
                'typeAttribute' => 'card_type', 
                'holderAttribute' => 'holderName',
                'expiryYearAttribute' => 'expiryYear',
                'expiryMonthAttribute' => 'expiryMonth',
                'cvvAttribute' => 'cvv',
            ],
        ];
    }
}

License

yii2-validators is released under the BSD-3-Clause License. See the bundled LICENSE.md for details.

yii2-validators's People

Contributors

kartik-v avatar vuongxuongminh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.