bachilli / laravel-request-rules

停止在FormRequests中重复代码和验证。本包以通用方式提供FormRequest组件的重用!

1.1.0 2020-03-03 18:30 UTC

This package is auto-updated.

Last update: 2024-08-29 05:18:48 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

停止在FormRequests中重复代码和验证。本包以通用方式提供FormRequest规则的重用!

安装

您可以通过composer安装此包

composer require bachilli/laravel-request-rules

用法

创建包含所有验证规则的主要FormRequests。之后,为您的控制器方法创建独特的FormRequests。以下是一个StoreProductRequest的示例

public function rules()
    {
        return RequestRule::resolveRules(
            [
            'name' => 'required',
            ],
            [
                RequestRule::merge(VolumeEntityFormRequest::class, 'volumes.*', 'required|array')->only(['dimensions'])->get(),
                RequestRule::merge(ProductEntityFormRequest::class, 'products.*')->except(['price'])->get(),
            ]);
    }

resolveRules方法中的第一个数组仅针对您的FormRequest,第二个数组是组合的规则,从其他FormRequests导入。

方法

提供了一些辅助方法,您在导入规则时可以使用。以下是对所有方法的描述。

merge(SomeFormRequest::class, 'desired_field_name', 'optional_validations')

desired_field_name中,您可以通过后缀.*来指定数组字段。

optional_validations在需要数组字段并希望进行某些验证(如required)时非常有用。

only(['field_name', SomeFormRequest::class])

如果您只想导入规则,可以使用此方法。

except(['field_name', SomeFormRequest::class])

您也可以这样做,导入所有规则,除了指定的那些。

测试

尚未实现。

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何安全相关问题,请通过电子邮件bachilli@gmail.com联系,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。