Как я могу использовать класс Request для хранения и обновления? - PullRequest
0 голосов
/ 28 января 2020

У меня есть класс Request для моей таблицы Room.

public function rules()
    {
        return [
            'name' =>  ['required', 'unique:categories', 'string'],
            'fr' => ['required', 'string']
        ];
    }

Он использует класс "Rule", чтобы гарантировать, что запрос является уникальным именем, но также позволяет вводить имя снова, если оно запрос на обновление.

Однако у меня есть несколько вопросов:

  • Если мой запрос - это магазин, а не обновление, он сломает вещь? Если да, как я могу избежать его взлома?
  • Как я могу получить $ id для моего специального класса запросов?

Спасибо!

1 Ответ

0 голосов
/ 28 января 2020

Вам нужно будет прикрепить этот запрос помещения как к вашему обновлению, так и к методу сохранения в вашем контроллере.

Теперь метод в вашем магазине должен выглядеть следующим образом. То же самое с вашим методом обновления

public function store(RoomRequest $request)
 {
     // your code here. 
 }



public function update(RoomRequest $request, $id)
 {
     // your code here. 
 }

Теперь в ваших правилах, чтобы ваша проверка не отображала ошибку уникальности при обновлении, вы должны использовать метод игнорирования валидатора, см. Код ниже.

public function rules()
{
      return [
           'name' =>  ['required', Rule::unique('categories')->ignore($this->id), 'string'],
           'fr' => ['required', 'string']
       ];
}

Не забудьте прикрепить его над кодом

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