Getting Started
Requirements
This package requires:
- PHP 8.4 or higher;
- Laravel 12 or higher.
Installation
You can install the package using composer:
bash
composer require larapkgs/validationQuickstart
Validating a single item (e.g. attribute, field, property)
php
<?php
declare(strict_types=1);
use LaraPkgs\Validation\Support\Facades\Validatable;
$validatable = Validatable::item('property')->required()->numeric()->min(10);
$data = [];
$fails = $validatable->fails($data); // true
$passes = $validatable->passes($data); // false
$validated = $validatable->validate($data); // Throws Illuminate\Validation\ValidationException;
$data = ['property' => 100];
$fails = $validatable->fails($data); // false
$passes = $validatable->passes($data); // true
$validated = $validatable->validate($data); // ['property' => 100];More information about single item validation can be found here.
Validating multiple items
php
<?php
declare(strict_types=1);
use LaraPkgs\Validation\Support\Facades\Validatable;
$validatable = Validatable::collection(
Validatable::item('name')->required()->string(),
Validatable::item('email')->required()->string()->email(),
);
$data = [];
$fails = $validatable->fails($data); // true
$passes = $validatable->passes($data); // false
$validated = $validatable->validate($data); // Throws Illuminate\Validation\ValidationException
$data = ['name' => 'John Doe', 'email' => 'j.doe@unknown.com'];
$fails = $validatable->fails($data); // false
$passes = $validatable->passes($data); // true
$validated = $validatable->validate($data); // ['name' => 'John Doe', 'email' => 'j.doe@unknown.com']More information about multi item validation can be found here.
Validation classes
php
<?php
declare(strict_types=1);
use LaraPkgs\Validation\Support\Facades\Validatable;
use LaraPkgs\Validation\Validatable as BaseValidatable;
use LaraPkgs\Validation\ValidatableCollection;
class UserValidation extends BaseValidatable
{
protected function makeValidatableCollection(): ValidatableCollection
{
return Validatable::collection(
Validatable::item('name')->required()->string(),
Validatable::item('email')->required()->string()->email(),
);
}
}
php
<?php
declare(strict_types=1);
$validatable = new UserValidation();
$data = [];
$fails = $validatable->fails($data); // true
$passes = $validatable->passes($data); // false
$validated = $validatable->validate($data); // Throws Illuminate\Validation\ValidationException
$data = ['name' => 'John Doe', 'email' => 'j.doe@unknown.com'];
$fails = $validatable->fails($data); // false
$passes = $validatable->passes($data); // true
$validated = $validatable->validate($data); // ['name' => 'John Doe', 'email' => 'j.doe@unknown.com']More information about validation classes can be found here.