php - 如何在 Laravel 中使用多个验证规则作为多个验证请求的基础
问题描述
假设我有 3 种类型的用户,它们都有共同的字段,例如:用户名、电子邮件、密码 .... 等
而且它们每个都有自己的字段,现在我创建添加、更新功能并为这些函数中的每一个创建 FormRequest,这导致我有 6 个 FormRequest,它们都有公共字段的通用规则!
我如何使用例如 StoreUserRequest 并将所有用于存储用户的通用规则放在正确的 FormRequest 中,我希望我能清楚地解释我想要实现的目标。
解决方案
您可以使用特征来完成此操作,这允许多个类(表单请求)继承指定的共享规则。
创建一个CommonUserRules.php
inapp\Http\Requests
目录:
<?php
namespace App\Http\Requests;
trait CommonUserRules
{
protected function userRules()
{
return [
'name' => 'required',
'password' => 'required',
];
}
}
这将是可以跨多个表单请求共享的规则。
然后在表单请求中使用特征:
use CommonUserRules;
然后,您可以相应地附加并定义您的独特规则:
public function rules()
{
return array_merge($this->userRules(), [
'individual_rule' => 'required',
'another_individual_rule' => 'required',
]);
}
推荐阅读
- pygit2 - 使用 pygit2 在两个标签之间进行 git 日志记录
- elasticsearch - 如何按日期和搜索词细化弹性搜索查询
- ssl - Google DataStudio SSL 连接到 MariaDB
- typescript - 错误:未知参数:init @graphql-codegen/cli
- reactjs - 如何在 Semantic UI React 中使搜索栏更长(宽度)?
- visual-studio - 禁用属性/参数名称信息 VS
- c - 对于结构无法正常工作,不在非素数后打印短语
- python - 使用 asyncio 在后台运行方法
- reactjs - 如何使用 React 测试库测试响应式 React 组件
- google-chrome - 如何使用 Chrome Incognito 运行 Cypress 为首的测试