Как я могу использовать несколько правил проверки в качестве основы для нескольких запросов проверки в Laravel

Допустим, у меня есть 3 типа пользователей, и все они имеют общие поля, например: имя пользователя, адрес электронной почты, пароль и т. Д.

И у каждого из них есть свои собственные поля, теперь я создаю функции добавления, обновления и создаю FormRequest для каждой из этих функций, что приводит меня к 6 FormRequest, и все они имеют общие правила для общих полей!

Как я могу использовать, например, StoreUserRequest и поместить все общие правила для хранения User и поместить отдельные правила в правильный FormRequest, я надеюсь, что смогу четко объяснить, чего я пытаюсь достичь.

1 ответ

Решение

Для этого вы можете использовать трейты, это позволяет нескольким классам (запросам формы) наследовать указанные общие правила.

Создать CommonUserRules.php в app\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',
        ]);
 }
Другие вопросы по тегам