['规则1','规则2'...] * * @var array */ protected $rule = [ 'phone' => 'require|mobile', 'password' => 'require|min:6|max:20', 'sms_code' => 'require', ]; /** * 定义错误信息 * 格式:'字段名.规则名' => '错误信息' * * @var array */ protected $message = [ 'phone.require' => '手机号必填', 'phone.mobile' => '手机号不正确', 'password.require' => '密码必填', 'password.min' => '密码长度最短为6个字符', 'password.max' => '密码长度最长为20个字符', 'sms_code' => '短信验证码必填' ]; protected $scene = [ 'login' => ['phone','password'], 'register' => ['phone','password','sms_code'], 'retrieve' => ['phone','password','sms_code'], 'modifyPassword' => ['password'], 'sendCode' => ['phone'] ]; /** * 手机号短信验证 * @param $mobile * @param $code * @return bool|string * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function checkCode($mobile,$code) { $pin_info = Db::name('pincode')->where('mobile',$mobile)->field('code,time')->find(); if (empty($pin_info)) { return '短信验证码错误'; } if ($pin_info['time'] < time() - 300) { return '短信验证码已过期,请重新获取'; } if ($code != $pin_info['code']) { return '短信验证码错误'; } return true; } }