jijoel/sanitization-filters

用于与 waavi/sanitizer 一起使用的数据清理过滤器

v0.3.1 2019-02-23 20:07 UTC

This package is auto-updated.

Last update: 2024-09-24 08:08:23 UTC


README

这是一个自定义清理过滤器的集合,可与 Waavi/Sanitizer 一起使用。

示例

给定以下格式的数据数组

$data = [
    'first_name'    =>  'john',
    'last_name'     =>  '<strong>DOE</strong>',
    'email'         =>  '  JOHn@DoE.com',
    'birthdate'     =>  '06/25/1980',
    'jsonVar'       =>  '{"name":"value"}',
];

我们可以轻松地使用我们的清理器和一些清理器默认过滤器来格式化它

use \Waavi\Sanitizer\Sanitizer;

$filters = [
    'first_name'    =>  'trim|escape|capitalize',
    'last_name'     =>  'trim|escape|capitalize',
    'email'         =>  'trim|escape|lowercase',
    'birthdate'     =>  'trim|format_date:m/d/Y, Y-m-d',
    'jsonVar'       =>  'cast:array',
];

$sanitizer  = new Sanitizer($data, $filters);
var_dump($sanitizer->sanitize());

这将产生

[
    'first_name'    =>  'John',
    'last_name'     =>  'Doe',
    'email'         =>  'john@doe.com',
    'birthdate'     =>  '1980-06-25',
    'jsonVar'       =>  '["name" => "value"]',
];

可用过滤器

安装

使用 composer 安装

composer require jijoel/sanitization-filters

我们还包含一个 Laravel 服务提供者,通过自动发现。对于 5.5 之前的 Laravel 版本,将其添加到 config/app.php 中的 providers 数组中

'providers' => [
    ...
    Waavi\Sanitizer\Laravel\SanitizerServiceProvider::class,
    Jijoel\Sanitizer\Laravel\SanitizerServiceProvider::class,
];

使用方法

建议在应用规则之前在 FormRequest 对象中清理您的数据。Waavi/Sanitizer 包包含一个 SanitizesInput 特性,它可以自动为您处理。

use Waavi\Sanitizer\Laravel\SanitizesInput;

class MyFormRequest extends FormRequest
{
    use SanitizesInput;

    public function filters()
    {
        return [
            'name' => 'trim|escape|name',
            'email' => 'trim|escape|lower',
        ];
    }

    public function rules()
    {
        return [
            'name' => 'required',
            'email' => 'required|email',
        ];
    }

请注意,目前,为了使此功能正常工作,必须存在清理器外观。