Laravel проверка запроса формы при сохранении и обновлении с использованием той же проверки - PullRequest
1 голос
/ 01 мая 2020

Я создаю laravel запрос на проверку формы и у меня есть уникальные правила для этой проверки.

Я хочу использовать его в store и update методе без повторного создания нового запроса формы.

но проблема в том, что на store идентификатор не существует, и валидация пройдена, а когда на update я не прошел проверку, потому что идентификатор существует в хранилище

я хочу игнорировать идентификатор в правилах unique, но с использованием той же формы запроса на проверку

Каков наилучший метод проверки класса запроса проверки формы, если это действие из метода хранения или обновления игнорирует уникальный идентификатор?

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Хорошо .. я могу сделать это как @porloscerros Ψ предложить

    public function rules()
    {
        $rules = [
            'name' => 'required|string|unique:products|max:255',
        ];

        if (in_array($this->method(), ['PUT', 'PATCH'])) {
            $product = $this->route()->parameter('product');

            $rules['name'] = [
                'required',
                'string',
                'max:255',
                Rule::unique('loan_products')->ignore($product),
            ];
        }

        return $rules;
    }
0 голосов
/ 01 мая 2020

Почему вы проверяете id, когда store или update в FormRequest? Тебе это не нужно. id приходит к методу вашего контроллера как параметр. Или laravel создаст модель с использованием DI в методе вашего контроллера public function update(User $user), а затем вы можете использовать $user как экземпляр пользовательской модели. Вы можете проверить id в сети. php или api. php: https://laravel.com/docs/7.x/routing#parameters -regular-expression-constraints

И я предлагаю вам не использовать один FormRequest для двух методов. Это плохая практика

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...