如何使用多个验证规则作为 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',
        ]);
 }