首页 > 解决方案 > 在 Laravel 中编辑时验证(唯一)

问题描述

也许这已经被问过了,但我没有找到它。

我在我的帖子编辑表单中有一个验证:

$request->validate([
    'title' => 'required|unique:posts|max:255',
    'content' => 'required',
]);

问题是如果用户只想更改内容,那么标题验证(唯一)将起作用,并且他将无法在不更改标题的情况下确认更改。

如何解决?

UPD。我找到了这个,但是是否可以在不创建新的 RequestController 的情况下实现它?

标签: laravelvalidation

解决方案


在您的情况下,在更新帖子时,您可以通过在规则post中指定该 id来忽略您正在更新的当前idunique

$request->validate([
    'title' => 'required|unique:posts,title,'.$post->id.'|max:255',
    'content' => 'required',
]);

推荐阅读