tkeer / ease-request
一个简化输入验证的 Laravel 扩展包
Requires
- laravel/framework: >=5.0
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 函数,并在该函数中添加所有规则。