where(function ($query) { return $query->where(['username'=>request('username','')]); })->ignore($id,'uid'); // 非重规则phone $uniphone = Rule::unique('admin')->where(function ($query){ return $query->where(['phone'=>request('phone','')]); })->ignore($id,'uid'); // 编辑时排除ID // 返回结果 return [ // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则,只需要将 bail 添加到规则中: // 验证字段,验证规则,提示信息 'username' => ['required',$unique], 'phone' => ['required','regex:/^1[3456789][0-9]{9}$/',$uniphone], 'password' => 'required', 'uid' => 'required|integer|gt:0', 'groups' => 'required' ]; } // 场景列表 protected $scenes = [ 'add' => ['username','phone','password','groups'], 'edit' => ['uid','username','phone'], 'del' => ['uid'], 'set_status' => ['uid'], ]; /** * 获取已定义验证规则的错误消息 * * @return array */ public function messages() { return [ 'username.required' => '用户名必填', 'username.unique' => '用户名已经存在', 'phone.required' => '手机号必填', 'phone.regex' => '手机号格式错误', 'phone.unique' => '手机号已经存在', 'password.required' => '密码必填', 'uid.required' => 'ID未知', 'uid.integer' => 'ID格式错误', 'uid.gt' => 'ID格式错误', 'groups.required' => '用户组必选' ]; } }