IndexController.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use App\Tools\CommonService;
  5. use App\Tools\PublicData;
  6. use Hyperf\Di\Annotation\Inject;
  7. use Hyperf\HttpServer\Contract\RequestInterface;
  8. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  9. use App\Request\FooRequest;
  10. use App\Request\SceneRequest;
  11. use App\Tools\Result;
  12. use ZipArchive;
  13. class IndexController extends AbstractController
  14. {
  15. #[Inject]
  16. protected ValidatorFactoryInterface $validationFactory;
  17. public function index(RequestInterface $request){
  18. $validator = $this->validationFactory->make(
  19. $request->all(),
  20. [
  21. 'foo' => 'required',
  22. 'bar' => 'required',
  23. ],
  24. [
  25. 'foo.required' => 'foo必填',
  26. 'bar.required' => 'bar必填',
  27. ]
  28. );
  29. if ($validator->fails()){
  30. // Handle exception
  31. $errorMessage = $validator->errors()->first();
  32. var_dump($errorMessage);
  33. }
  34. // master123
  35. }
  36. public function verifyCode()
  37. {
  38. $comm = new CommonService();
  39. $ip = $comm->userIp();
  40. $redis = $this->container->get(\Hyperf\Redis\Redis::class);
  41. $config = new \EasySwoole\VerifyCode\Config();
  42. $code = new \EasySwoole\VerifyCode\VerifyCode($config);
  43. $img_code = '';
  44. $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  45. $charLength = strlen($characters);
  46. for ($i = 0; $i < 4; $i++) {
  47. $img_code .= $characters[rand(0, $charLength - 1)];
  48. }
  49. //重写验证码
  50. $result = $code->DrawCode((string)$img_code);
  51. $img_code = $result->getImageCode();
  52. $code_uniqid = uniqid("code");
  53. //写入缓存 用于其他方法验证 并且设置过期时间
  54. $redis->set($code_uniqid,$img_code,60000);
  55. return $result?Result::success(['code'=>$code_uniqid,'img'=>$result->getImageBase64()]):Result::error('失败');
  56. // return $result->getImageBase64();
  57. }
  58. // test
  59. /**
  60. * 获取验证码
  61. */
  62. public function getverifyCode(){
  63. $comm = new CommonService();
  64. $ip = $comm->userIp();
  65. $redis = $this->container->get(\Hyperf\Redis\Redis::class);
  66. $img_code = $redis->get('code'.$ip);
  67. return Result::success($img_code);
  68. }
  69. }