如何在 UpdateRequest 自定义中实现 laravel 唯一验证?
how to implement laravel validation unique in UpdateRequest custom?
我在文件 UpdateAnimeRequest 中有一个独特的规则,我想实现这样一个独特的规则:
https://laravel.com/docs/8.x/validation#rule-unique
问题是如果我想在不更改标题的情况下进行更新,则会出现唯一的错误,当用户不想更改标题输入字段时,如何防止出现此错误?
这是我的自定义请求文件的内容:
<?php
namespace App\Http\Requests;
use App\Rules\ValidGenre;
use App\Rules\ValidWord;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Gate;
class UpdateAnimeRequest extends FormRequest
{
public function rules()
{
return [
'title' => 'required|unique:animes,title|max:25',
'genres' => [
'required', new ValidGenre(), new ValidWord()
],
'status' => 'nullable|regex:/1/',
'link' => 'nullable|url',
'motivasi' => 'nullable|regex:/^[a-zA-Z0-9_\s\-]*$/',
];
}
public function authorize()
{
return Gate::allows('anime_access');
}
}
有人可以帮我在我的自定义请求中实现忽略自我吗?
首先如果你想忽略 self 那么你必须有 anime_id 来知道它是否有 self
那么规则可以是
'title' => ['required', "max:25", Rule::unique('animes', 'title')->ignore($this->anime->id, 'id')],
我在文件 UpdateAnimeRequest 中有一个独特的规则,我想实现这样一个独特的规则: https://laravel.com/docs/8.x/validation#rule-unique
问题是如果我想在不更改标题的情况下进行更新,则会出现唯一的错误,当用户不想更改标题输入字段时,如何防止出现此错误?
这是我的自定义请求文件的内容:
<?php
namespace App\Http\Requests;
use App\Rules\ValidGenre;
use App\Rules\ValidWord;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Gate;
class UpdateAnimeRequest extends FormRequest
{
public function rules()
{
return [
'title' => 'required|unique:animes,title|max:25',
'genres' => [
'required', new ValidGenre(), new ValidWord()
],
'status' => 'nullable|regex:/1/',
'link' => 'nullable|url',
'motivasi' => 'nullable|regex:/^[a-zA-Z0-9_\s\-]*$/',
];
}
public function authorize()
{
return Gate::allows('anime_access');
}
}
有人可以帮我在我的自定义请求中实现忽略自我吗?
首先如果你想忽略 self 那么你必须有 anime_id 来知道它是否有 self 那么规则可以是
'title' => ['required', "max:25", Rule::unique('animes', 'title')->ignore($this->anime->id, 'id')],