尝试更新时的laravel验证错误

当我尝试更新帖子时,如果我不更改 slug 的值,laravel 会返回此错误:


蛞蝓已经被拿走了。


这是我的验证:


$this->validate($request, [

  'name' => 'required',

  'content' => 'required',

  'excerpt' => 'required',

  'type' => 'required',

  'slug' => 'required | unique:providers'

]);


繁花不似锦
浏览 158回答 3
3回答

慕尼黑的夜晚无繁华

当您更新记录并添加唯一验证时。您应该传递要插入的记录的id。更新时'slug' => 'required | unique:providers,slug,'.$providerId插入时'slug' => 'required | unique:providers'

浮云间

您需要告诉验证器对您正在更新的当前实体进行异常处理。$this->validate($request, [        'name' => 'required',        'content' => 'required',        'excerpt' => 'required',        'type' => 'required',        'slug' => 'required|unique:providers,slug,'.$providerId    ]);

慕村9548890

添加时:use Illuminate\Support\Str;..$slug = Str::slug($request->name, '-');$exists = Provider::where('slug', $slug)->first();if($exists) {   $slug = $slug.'-'.rand(1000,9999);}更新时:$request->validate([   'slug' => 'required|unique:providers,slug,'.$provider_id.',id',]);
打开App,查看更多内容
随时随地看视频慕课网APP