yemenifree / laravel-validation
Use laravel validation standalone support translate.
Requires
- rakit/validation: ^0.13.1
README
A tiny package to use laravel validation outside laravel with support translate error message. this package is extend for rakit/validation so read it's document for more information.
Features
- Init validation easy with trait.
- Support Multi lang for error messages.
- More come soon.
Requirements & Installation
Requires PHP 7.0+
Via Composer
$ composer require yemenifree/laravel-validation
Getting Started
To init validation on class add HasValidator
trait.
use Yemenifree\Validation\Traits\HasValidator; class SomeController { use HasValidator; // }
Then to valid some data you can pass array for data & rules and others options.
$this->valid(array $data, array $rules, array $messages = [], array $aliases = [])
For example
/** * Register User * * @return array */ public function register() { $isValid = $this->valid( [ 'username' => 'salah', 'password' => 'test' ] , [ 'username' => 'required', 'password' => 'required', ]); if(!$isValid){ // data not valid. } // every thing right. }
If you have same response for all form in controller you can handler validation error once by create InValidCallback
in class.
use Yemenifree\Validation\Traits\HasValidator; class SomeController { use HasValidator; /** * Register User * * @return array */ public function register() { $isValid = $this->valid( [ 'username' => 'salah', 'password' => 'test' ] , [ 'username' => 'required', 'password' => 'required', ]); // if data not valid will excute `InValidCallback` in this class. if(!$isValid) { return; } // every thing right. } /** * In valid function. * * @param array $errors * * @throws InvalidArgumentException */ public function InValidCallback(array $errors) { // do whatevet you want with errors. return false; } }
You can use custom translate file for validation errors.
use Yemenifree\Validation\Traits\HasValidator; class SomeController { use HasValidator; public function __construct() { $this->setValidatorLocal( // file name wihout .php 'ar', // path of translate 'translate/path' ); } /** * Register User * * @return array */ public function register() { $isValid = $this->valid( [ 'username' => 'salah', 'password' => 'test' ] , [ 'username' => 'required', 'password' => 'required', ]); if(!$isValid) { // message errors. $errors = $this->getValidErrors(); } // every thing right. } }
translate files must return array of messages. see
src/lang/ar.php
for example.
To access to all method of Validator
use getValidator()
method.
use Yemenifree\Validation\Traits\HasValidator; class SomeController { use HasValidator; public function __construct() { // add custom rule. $this->getValidator()->addValidator('simple', new SimpleRule()); } }
For more information about rules check rakit/validation
Change log
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email yemenifree@yandex.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.