Я пытаюсь обновить данные, которые имеют уникальное имя, требуемое при проверке. Тем не менее, я не могу заставить его работать, потому что он постоянно говорит мне, что 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: ""
};
},