tkeer/ease-request

一个简化输入验证的 Laravel 扩展包

v1.0.2 2017-07-23 17:45 UTC

This package is auto-updated.

Last update: 2024-09-15 00:44:01 UTC


README

FormRequest 类的 rules 函数内部,可以这样编写规则

name => exists:users,name,group_id,{group_id}

无论何时您在花括号内放置任何关键字,EaseRequest 都会将其替换为从 Request 或您自定义的函数中获取的值

如果 Request 中的 group_id 为 3,则上述规则将转换为以下内容

name => exists:users,name,group_id,3

关于 EaseRequest

EaseRequest 是一个 Laravel 扩展包,支持在运行时更新 FormRequest 验证规则。

示例

假设您想更新一个学生数据,学生有 class_id 和 school_id。您想更新学生的班级,并验证该班级存在于数据库中。使用当前的 Laravel 实现,它将正常工作。以下是规则。

class_id => exists:classes,class_id

如果您还希望验证该班级是否属于学生的学校,Laravel 提供了将 where 条件添加到规则中的选项。

class_id => exists:classes,class_id,NULL,id,school_id,1

但是,您必须为 where 条件提供硬编码的值。

使用此包,您可以在运行时更新您的规则。您可以在花括号中添加您的关键字,此包将从中获取请求的值并更新规则。

class_id => exists:classes,class_id,NULL,id,school_id,{school_id}

您还可以定义一个方法来更新规则,而不是从 Request 类中获取值。只需在您的类中编写与花括号中写入的关键字同名的方法。这样,您的该方法将被调用,并且从您的该方法返回的值将被添加到关键字的位置。

private function school_id()
{
        return (int)\Request::get('school_id');
}

安装

composer require tkeer/ease-request 1.*

用法

使用抽象类 EaseRequest

通过 EaseRequest 扩展您的类,而不是 FormRequest,在您的类中实现抽象函数 preRules,并在该函数中定义所有规则。

使用特质 EaseRequestTrait

通过 FormRequest 扩展您的类,并在类中添加 EaseRequestTrait。在您的类中定义 preRules 函数,并在该函数中添加所有规则。