xgbnl/validation

Scene-based Validator in Laravel.

dev-main 2024-03-15 08:21 UTC

This package is auto-updated.

Last update: 2024-10-15 09:27:24 UTC


README

Validator for Laravel framework with customized scenarios.

Simple install
$ composer require xgbnl/validation dev-main
Create scene validator
$ php artisan make:validator UserValidator
Define validation scenarios
//  Add a validation scene to the authenticator.
public function scenes():array
{
    return [
        'store' => 'name,phone,age,email',
        'update' =>['name','age'],
    ];
}

// The custom scene is invoked in Controller.
public function store(UserValidator $userValidator):mixed
{
    $userValidator->withScene('store')->validatedForm(); // returns DataTransfer
    
    $userValidator->withScene('update')->validatedRaw(); // returns array
    
    // do something...
}
Extend the custom validation rule method
// Add a password validation rule to the authenticator.
public function passwordRules():array
{
    return [
        'password'=> 'required|string|min:6',
        'password_confirm' =>'required|same:password'
    ];
}

// The custom rule is invoked in Controller.
public function update(UserValidator $userValidator):mixed
{
    $userValidator->withScene('update')
        ->withRule('password')
        ->validateForm();
        
    // do something...
}