【问题标题】:Validation (unique) while editing in Laravel在 Laravel 中编辑时验证(唯一)
【发布时间】:2021-01-23 01:25:17
【问题描述】:

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

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

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

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

如何解决?

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

【问题讨论】:

  • 在编辑页面中,您已经拥有数据,因此您可以发送这些数据

标签: laravel validation


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    laravel 中独一无二的就是这样工作的。

    唯一:“tableName”、“tableColumnName”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 2014-06-28
      • 2016-01-29
      • 2018-08-09
      • 2019-02-26
      相关资源
      最近更新 更多