我有一个CategoryRequest.php文件和一个字段名称'的唯一验证。 当我使用表单创建时,它可以工作,因此它可以防止插入具有相同名称的类别。
问题在于,当尝试更新它时,说:'该名称已被采用。'或者如果我尝试下面的代码,它会说:'未定义的变量:id'。
我如何更新并在验证时忽略自己的名字? 这是我的代码:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CategoryRequest 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 [
'name' => 'required|unique:categories,name,'.$id.',id'
];
}
}
答案 0 :(得分:2)
改变这个:
return [
'name' => 'required|unique:categories,name,'.$id.',id'
];
到此:
return [
'name' => 'required|' . Rule::unique('categories')->ignore('category')
];
或者这个:
return [
'name' => ['required', Rule::unique('categories')->ignore('category')]
];