Laravel 验证唯一时排除修改时的数据

laravel验证唯一性很简单:unique:user,phone 这个就是验证user表的phone字段是否唯一,但是修改数据时这样就验证过不了,怎么办呢?

use Illuminate\Support\Facades\Validator;

$msg = [
    'name.required' => '姓名不能为空',
     'phone.required' => '手机不能为空',
     'phone.regex' => '请输入正确的手机号',
     'phone.unique' => '手机号已经存在',
 ];

$rules = [
     'name' => 'required',
     //此处注意,phone后面一定要加逗号(,)不然他会把phone和id拼接,从而找不到字段报错
     'phone' => 'required|regex:/^1[345789][0-9]{9}$/|unique:user,phone,'.$id,
 ];
$validator = Validator::make($receive, $rules, $messages);
        if($validator->fails()){
            $error = '';
            foreach ($validator->errors()->getMessages() as $v) {
                $error = $v[0];
                break;
            }
            return sendError($error, 422);
        }

这样一个验证就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值