laravel 更新时,使用 FormRequest 做唯一验证如何排除指定记录

文档中关于唯一验证的说明,第三个参数就是如何排除数据的,

unique:table,column,except,idColumn

在更新数据的时候,需要排除自己本身这条记录,如何快速的实现这个功能呢?

case 'PUT':
case 'PATCH': {
   return [
       'name' => [
          'required',
          'max:24',
          Rule::unique('facilities', 'name')->ignoreModel(Facility::find($this->request->get('id')))
        ]
    ];
}

现在是在更新提交更新的时候,传递了本条记录的 id,然后能实现这个功能。

如果能在 FormRequest 中获取到路由中模型绑定 facilities/{facility} 的 facility 就会简单很多,直接用就可以了。
怎么做的呢?使用下面代码就可以获取:

$this->route('facility')

注意名字要匹配,比如  /photos/{photo}/edit ,要 $this->route('photo');  {photo}与route参数匹配

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页