kennedytedesco/validation

The power of 'Respect Validation' on Laravel 4 Validation.

Installs: 6 362

Dependents: 0

Stars: 69

Watchers: 8

Forks: 16

Language: PHP

2.0.4 2015-06-09 03:52 UTC

README

Build Status Total Downloads Latest Stable Version

"The power of 'Respect Validation' on Laravel"

Laravel 5.0 and Laravel 5.1

In the require key of composer.json file add the following:

"kennedytedesco/validation": "~2.0"

Laravel 4.2 and Below

In the require key of composer.json file add the following:

"kennedytedesco/validation": "~1.0"

Important: Do not use dev-master. Instead, use the tagged version, like shown before.

Run the Composer update comand:

composer update

In your config/app.php add 'KennedyTedesco\Validation\ValidationServiceProvider' to the end of the 'providers' array:

'providers' => array(
    ...
    ...
    'KennedyTedesco\Validation\ValidationServiceProvider',
),

Supported rules (with examples)

// Rules
$rules = array(
    'cpf'               => 'cpf',
    'cnpj'              => 'cnpj',
    'cnh'               => 'cnh', // Carteira Nacional de Habilitação
    'minimum_age'       => 'minimumAge:20',
    'callback'          => 'callback:is_int',
    'charset'           => 'charset:ASCII',
    'consonant'         => 'consonant',
    'vowel'             => 'vowel',
    'alnum'             => 'alnum:-',
    'digit'             => 'digit',
    'alpha'             => 'alpha',
    'containsArray'     => 'contains:banana',
    'contains'          => 'contains:banana',
    'countryCode'       => 'countryCode',
    'creditCard'        => 'digit|creditCard',
    'domain'            => 'domain',
    'directory'         => 'directory',
    'FileExists'        => 'FileExists',
    'isFile'            => 'file',
    'endsWith'          => 'endsWith:banana',
    'equals'            => 'equals:banana',
    'even'              => 'even',
    'float'             => 'float',
    'graph'             => 'graph',
    'instance'          => 'instance:DateTime',
    'int'               => 'int',
    'json'              => 'json',
    'leapDate'          => 'leapDate:Y-m-d',
    'leapYear'          => 'leapYear',
    'arr'               => 'arr',
    'lowercase'         => 'lowercase',
    'macAddress'        => 'macAddress',
    'multiple'          => 'multiple:3',
    'negative'          => 'negative',
    'noWhitespace'      => 'noWhitespace',
    'notArray'          => 'arr|not',
    'nullValue'         => 'nullValue',
    'numeric'           => 'numeric',
    'object'            => 'object',
    'odd'               => 'odd',
    'perfectSquare'     => 'perfectSquare',
    'positive'          => 'positive',
    'primeNumber'       => 'primeNumber',
    'punct'             => 'punct',
    'readable'          => 'readable',
    'regex'             => 'regex:/5/',
    'roman'             => 'roman',
    'slug'              => 'slug',
    'space'             => 'space:b',
    'tld'               => 'tld', // Top Level Domain,
    //'uploaded'        => 'uploaded',
    'uppercase'         => 'uppercase',
    'version'           => 'version',
    'xdigit'            => 'xdigit', // Hexadecimal
    'writable'          => 'writable',
    'alwaysValid'       => 'alwaysValid',
    'bool'              => 'bool'       
);

// Data
$data = array(
    'cpf'               => '22205417118',
    'cnpj'              => '68518321000116',
    'cnh'               => '02650306461',
    'minimum_age'       => '10/10/1990',
    'callback'          => 20,
    'charset'           => 'acucar',
    'consonant'         => 'dcfg',
    'vowel'             => 'aeiou',
    'alnum'             => 'banana-123 ',
    'digit'             => '120129  21212',
    'alpha'             => 'banana',
    'containsArray'     => array('www', 'banana', 'jfk', 'http'),
    'contains'          => 'www banana jfk http',
    'countryCode'       => 'BR',
    'creditCard'        => '5555666677778884',
    'domain'            => 'google.com.br',
    'directory'         => __DIR__,
    'FileExists'        => __FILE__,
    'file'              => __FILE__,
    'endsWith'          => 'pera banana',
    'equals'            => 'banana',
    'even'              => 8,
    'float'             => 9.8,
    'graph'             => 'LKM@#$%4;',
    'instance'          => new Datetime(),
    'int'               => 9,
    'json'              => '{"file":"laravel.php"}',
    'leapDate'          => '1988-02-29',
    'leapYear'          => '1988',
    'arr'               => array('Brazil'),
    'lowercase'         => 'brazil',
    'macAddress'        => '00:11:22:33:44:55',
    'multiple'          => '9',
    'negative'          => '-10',
    'noWhitespace'      => 'laravelBrazil',
    'nullValue'         => null,
    'numeric'           => '179.9',
    'object'            => new stdClass(),
    'odd'               => 3,
    'perfectSquare'     => 25,
    'positive'          => 1,
    'primeNumber'       => 7,
    'punct'             => '&,.;[]',
    'readable'          => __FILE__,
    'regex'             => '5',
    'roman'             => 'VI',
    'slug'              => 'laravel-brazil',
    'space'             => '              b      ',
    'tld'               => 'com',
    //'uploaded'        => 'path to file',
    'uppercase'         => 'BRAZIL',
    'version'           => '1.0.0',
    'xdigit'            => 'abc123',
    'writable'          => __FILE__,
    'alwaysValid'       => '@#$_',
    'bool'              => is_int(2)
);

// Make the validation
$validator = \Validator::make($data, $rules);

// Result
if( $validator->fails() )
{
    // Print errors
    $messages = $validator->messages();            
    foreach ($messages->all() as $message) {
        echo '<li>'.$message.'</li>';
    }            
}
else
{
    // Success
    echo 'True.';
}

Respect Validation

For more details on the rules:

https://github.com/Respect/Validation

Tks for Respect: The most awesome validation engine ever created for PHP!