Laravel запрос проверки формы уникальный неосведомленный не работает при обновлении - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь обновить данные, которые имеют уникальное имя, требуемое при проверке. Тем не менее, я не могу заставить его работать, потому что он постоянно говорит мне, что The name has already been taken.. Уже попробовал

Пожалуйста, посмотрите на мой скрипт проверки:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class RequestDepartment extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'division_id' => 'required|numeric',
            'name' => "sometimes|required|string|unique:departments,name,{$this->id},id",
            'description' => 'sometimes|nullable|string'
        ];
    }
}

также, скрипт обновления моего контроллера:

/**
 * Update the specified resource in storage.
 *
 * @param  \App\Http\Requests\RequestDepartment  $request
 * @param  \App\Department  $department
 * @return \Illuminate\Http\Response
 */
public function update(RequestDepartment $request, Department $department)
{
    $department->update($request->validated());
    $department = Department::whereId($department->id)->with('division')->first();

    return response()->json([
        'updated' => true,
        'data' => $department,
    ]);
}

Я использую Laravel 7.x, есть идеи?

РЕДАКТИРОВАТЬ

Я хочу обновить поле division_id или description.

РЕДАКТИРОВАТЬ 2

Моя форма динамически c, внутри Vue экземпляр и Form класс

data() {
  return {
    form: new Form({
      division_id: "",
      company_id: "",
      name: "",
      description: ""
    }),
    updateForm: new Form({
      division_id: "",
      company_id: "",
      name: "",
      description: ""
    }),
    filter: ""
  };
},

1 Ответ

2 голосов
/ 27 марта 2020

Попробуйте,

'name' => "required|string|unique:departments,name,". $id,

Здесь $ id означает идентификатор, который вы хотите обновить. это будет проверять уникальную часть всех данных имени, но не для этого идентификатора.

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