如何使用多个验证规则作为 Laravel 中多个验证请求的基础
How can I use multiple validation rules as base for multiple validation requests in Laravel
假设我有 3 种类型的用户,他们都有共同的字段,例如:
用户名、电子邮件、密码....等等
它们每个都有自己的字段,现在我创建了添加、更新功能,并为这些函数中的每一个创建了 FormRequest,这导致我得到 6 个 FormRequest,它们都有通用字段的通用规则!
我如何使用 StoreUserRequest 并将所有用于存储用户的通用规则放入正确的 FormRequest 中,我希望我能清楚地解释我想要实现的目标。
您可以使用 traits 来完成此操作,这允许多个 类(表单请求)继承指定的共享规则。
在 app\Http\Requests
目录中创建一个 CommonUserRules.php
:
<?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',
]);
}
假设我有 3 种类型的用户,他们都有共同的字段,例如: 用户名、电子邮件、密码....等等
它们每个都有自己的字段,现在我创建了添加、更新功能,并为这些函数中的每一个创建了 FormRequest,这导致我得到 6 个 FormRequest,它们都有通用字段的通用规则!
我如何使用 StoreUserRequest 并将所有用于存储用户的通用规则放入正确的 FormRequest 中,我希望我能清楚地解释我想要实现的目标。
您可以使用 traits 来完成此操作,这允许多个 类(表单请求)继承指定的共享规则。
在 app\Http\Requests
目录中创建一个 CommonUserRules.php
:
<?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',
]);
}