Skip to content

Latest commit

 

History

History
183 lines (156 loc) · 7.23 KB

README.md

File metadata and controls

183 lines (156 loc) · 7.23 KB

Build custom laravel validation rules easily

This package is under development, please do not use in production. You can download and test it.

Installation

Require the package with composer using the following command:

composer require shergela/validation-rule

Service Provider

<?php
return [
    Shergela\Validations\ShergelaValidationsServiceProvider
];

Build rules

Available rules

Methods Laravel Rule
Rule::required() required
Rule::nullable() nullable
Rule::boolean() boolean
Rule::rules() custom rules
->email() email
->uniqueEmail() unique:users,email
->min() min
->max() max
->minDigits() min_digits
->maxDigits() max_digits
->integer() integer
->numeric() numeric
->digits() digits:1
->digitsBetween() digits:1,4
->decimal() decimal
->alpha() alpha
->alphaDash() alpha_dash
->alphaNum() alpha_num
->string() string
->uppercase() uppercase
->lowercase() lowercase
->regex() regex:pattern
->hexColor() hex_color
->json() json
->url() url or url:http,https
->uuid() uuid
->ulid() ulid
->timezone() timezone
->date() date
->dateFormat() date_format
->dateEquals() date_equals
->dateBefore() before
->dateBeforeOrEqual() before_or_equal
->dateAfter() after
->dateAfterOrEqualToday() after_or_equal:today
->dateAfterOrEquals() after_or_equal
->ip() ip
->ipv4() ipv4
->ipv6() ipv6
->macAddress() mac_address
->startsWith() starts_with:foo,bar...
->size() size
->endsWith() ends_with:foo,bar
->doesntStartWith() doesnt_start_with:foo,bar
->doesntEndWith() doesnt_end_with:foo,bar
->in() in:foo,bar...
->notIn() not_in:foo,bar,baz...
->regex() regex:pattern
->uppercaseFirstLetter() new UppercaseFirstLetter()
->lowercaseFirstLetter() new TimezoneRegionValidation()
->separateIntegersByComma() new SeparateIntegersByComma()
->separateStringsByComma() new SeparateStringsByComma()
->separateStringsByUnderscore() new SeparateStringsByUnderscore()
->timezones() new TimezoneValidation()
->timezoneAsia() new TimezoneRegionValidation()
->timezoneEurope() new TimezoneRegionValidation()
->timezoneAmerica() new TimezoneRegionValidation()
->timezoneAntarctica() new TimezoneRegionValidation()
->timezoneArctic() new TimezoneRegionValidation()
->timezoneAtlantic() new TimezoneRegionValidation()
->timezoneAustralia() new TimezoneRegionValidation()
->timezoneIndian() new TimezoneRegionValidation()
->timezonePacific() new TimezoneRegionValidation()
->array() array
->arrayDistinct() distinct
->arrayDistinctStrict() distinct:strict
->arrayDistinctIgnoreCase() distinct:ignore_case
->uppercaseWord() Word must be a uppercase
->lowercaseWord() Word must be a lowercase
->lettersAndSpaces() Letters and spaces only

Writing custom rule and message

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Shergela\Validations\Validation\Rule;

class TestRequest extends FormRequest
{
/**
* @return bool
*/
public function authorize(): bool
{
    return true;
}

    public function rules(): array
    {
        return [
            'name' => [
                Rule::required()->email()->messages(
                    messages: [
                        'name.required' => 'The name field is required.',
                        'email.required' => 'The email field is required.',
                    ]
                )
            ],
        ];
    }
}

Writing a custom message in the methods

    
    namespace App\Http\Requests;
    
    use Illuminate\Foundation\Http\FormRequest;
    use Shergela\Validations\Validation\Rule;
    
    class TestRequest extends FormRequest
    {
        /**
        * @return bool
          */
          public function authorize(): bool
          {
          return true;
          }
        
          public function rules(): array
          {
            return [
                'name' => Rule::required(message: 'Please :name enter your name')
                    ->min(min: 3, message: 'Please :name enter at least 3 characters'),
            ];
          }
      }

License

The MIT License (MIT). Please see License for more information.