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参数匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值