Download the PHP package dbt/staged-validation without Composer
On this page you can find all versions of the php package dbt/staged-validation. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dbt/staged-validation
More information about dbt/staged-validation
Files in dbt/staged-validation
Package staged-validation
Short Description Staged validation for Laravel
License MIT
Homepage https://github.com/dbt/staged-validation
Informations about the package staged-validation
Staged Validation for Laravel
This package provides an easy way to validate request data in stages. This is useful in cases where you want to validate, say, scalar data before doing heavy lifting against the database or external services.
This package also provides a convenient way to cache data in your Rule
classes, so you don't have to look up records twice (eg once in a form request and again in a controller).
Installation
Usage
Bundles
Define a set of stages by extending the abstract StageBundle
. It should look something like this:
Stages
Each stage should extend the abstract Stage
class. Eg:
Validation
Simply typehint the bundle in your controller:
Each stage will be validated separately. This means if one stage fails validation, the next stage won't be run.
Retaining entities
If you wish to retain fetched entities, extend the CachedRule
class. It's simply a Laravel Rule
with a slightly different interface:
The retained entities will be serialized along with the original values as part of the bundle payload. So if a stage named second_stage
has a cached rule for an attribute called my_attribute
, you will be see a collection with this shape:
Extending
If you wish to write your own implementation, you may implement any of the provided interfaces: CachedRuleInterface
, StageBundleInterface
, or StageInterface
.
If you wish to change the Validator implementation for a given stage, you may override the Stage::validatorResolver()
method.
Etc.
Please see CONTRIBUTING for details. The MIT License (MIT). Please see License File for more information.