kartik-v / yii2-validators
Enhanced Yii2 model validator components / utilities for Yii2 Framework
Installs: 87 847
Dependents: 0
Suggesters: 0
Security: 0
Stars: 20
Watchers: 5
Forks: 6
Open Issues: 0
Type:yii2-extension
Requires
This package is auto-updated.
Last update: 2024-11-29 05:03:51 UTC
README
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.
The JsonValidator
extends the yii\validators\Validator component.
It validates JSON input in text area fields. The validator also helps to overwrite the JSON input as a pretty format via prettify
setting.
It includes both server and client validations.
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', ], ]; } }
JsonValidator
The JsonValidator
extends the yii\validators\Validator component.
It validates JSON input in text area fields. The validator also helps to overwrite the JSON input as a pretty format via prettify
setting.
It includes both server and client validations. The JsonValidator
class can be easily used via the alias k-json
in your model validation
rules. For example in your model you can use this as shown below:
use yii\db\ActiveRecord; class ProductModel extends ActiveRecord { /** * @return array the validation rules. */ public function rules() { return [ [ ['products_list_json'], 'k-json', 'prettify' => true, // set this to false if you do not wish to prettify the json input ], ]; } }
License
yii2-validators is released under the BSD-3-Clause License. See the bundled LICENSE.md
for details.