'require|mobile', 'scene' => 'require', 'verifyCode' => 'require|checkVerifyCode', ]; protected $message = [ 'mobile.require' => '请输入手机号', 'mobile.mobile' => '请输入正确手机号', 'scene.require' => '请输入场景值', 'verifyCode.require' => '请输入图形验证码', ]; /** * @notes 发送短信 */ public function sceneSendCode() { if(env('environment','pro') == 'dev') return $this->only(['mobile','scene']); return $this->only(['mobile','scene','verifyCode']); } /** * @notes 图形验证码 */ public function sceneVerifyCode() { return $this->only(['mobile']); } /** * @notes 校验图形验证码 */ public function checkVerifyCode($scene, $rule, $data) { $captcha = cache('verifyCode_'.$data['mobile']); if (empty($captcha)) { return '图形验证码已失效,请重新获取'; } if ($captcha != $data['verifyCode']) { return '图形验证码错误'; } // 验证成功后删除验证码 cache('verifyCode_'.$data['mobile'],null); return true; } }