Filter items before your validate them with Laravel 5s Validator.
Values will be filtered based on the function you provide. If the parameter exists in the request it will also be replaced.
composer require askedio/laravel-validator-filter
Add the following to the providers array in config/app.php
:
Askedio\LaravelValidatorFilter\FilterServiceProvider::class
You can use any function that is callable and accepts the value as the parameter.
$validator = app('validator')->make([
'string' => 'Hello ' . PHP_EOL . ' World',
], [
'string' => 'filter:strip_tags,nl2br',
]);
$validator->passes();
dd($validator->getData());
You can use a function with parameters in line. ()
= []
& ,
= ;
.
$validator = app('validator')->make([
'string' => 'Hello <br> World<p></p>',
], [
'string' => 'filter:strip_tags[{$value}; "<br>"]',
]);
$validator->passes();
dd($validator->getData());
You can also define your own custom filter.
app('filter')->register('plusOne', function ($value) {
return $value+1;
});
$validator = app('validator')->make([
'int' => '<br>1',
], [
'int' => 'filter:strip_tags,plusOne',
]);
$validator->passes();
dd($validator->getData());