<?php declare(strict_types=1); namespace App\Controller; use App\Tools\CommonService; use App\Tools\PublicData; use Hyperf\Di\Annotation\Inject; use Hyperf\HttpServer\Contract\RequestInterface; use Hyperf\Validation\Contract\ValidatorFactoryInterface; use App\Request\FooRequest; use App\Request\SceneRequest; use App\Tools\Result; use ZipArchive; class IndexController extends AbstractController { #[Inject] protected ValidatorFactoryInterface $validationFactory; public function index(RequestInterface $request){ $validator = $this->validationFactory->make( $request->all(), [ 'foo' => 'required', 'bar' => 'required', ], [ 'foo.required' => 'foo必填', 'bar.required' => 'bar必填', ] ); if ($validator->fails()){ // Handle exception $errorMessage = $validator->errors()->first(); var_dump($errorMessage); } } public function verifyCode() { $comm = new CommonService(); $ip = $comm->userIp(); $redis = $this->container->get(\Hyperf\Redis\Redis::class); $config = new \EasySwoole\VerifyCode\Config(); $code = new \EasySwoole\VerifyCode\VerifyCode($config); $img_code = ''; $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $charLength = strlen($characters); for ($i = 0; $i < 4; $i++) { $img_code .= $characters[rand(0, $charLength - 1)]; } //重写验证码 $result = $code->DrawCode((string)$img_code); $img_code = $result->getImageCode(); //写入缓存 用于其他方法验证 并且设置过期时间 $redis->set('code'.$ip,$img_code,60000); return $result?Result::success($result->getImageBase64()):Result::error('失败'); // return $result->getImageBase64(); } // 1 }