如何在 Laravel 中使用多个验证规则作为多个验证请求的基础

假设我有 3 种类型的用户,他们都有共同的字段,例如:用户名、电子邮件、密码......等

它们中的每一个都有自己的字段,现在我创建了添加、更新功能并为这些函数中的每一个创建了 FormRequest,这使我得到了 6 个 FormRequest,它们对公共字段都有共同的规则!

我如何使用 StoreUserRequest 并将所有用于存储用户的通用规则放在正确的 FormRequest 中,我希望我能清楚地解释我想要实现的目标。


HUX布斯
浏览 113回答 1
1回答

泛舟湖上清波郎朗

您可以使用特征来完成此操作,这允许多个类(表单请求)继承指定的共享规则。CommonUserRules.php在目录中创建一个app\Http\Requests:<?phpnamespace App\Http\Requests;trait CommonUserRules{&nbsp; &nbsp; protected function userRules()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'name' => 'required',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'password' => 'required',&nbsp; &nbsp; &nbsp; &nbsp; ];&nbsp; &nbsp; }}这将是可以在多个表单请求之间共享的规则。然后在表单请求中使用特征:use CommonUserRules;然后您可以相应地附加和定义您的独特规则:&nbsp;public function rules()&nbsp;{&nbsp; &nbsp; &nbsp; &nbsp; return array_merge($this->userRules(), [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'individual_rule' => 'required',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'another_individual_rule' => 'required',&nbsp; &nbsp; &nbsp; &nbsp; ]);&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP