-
叮当猫咪
use Symfony\Component\HttpKernel\Exception\HttpException;if($exception instanceof HttpException && $exception->getStatusCode() == 429) {return response()->json(['message' => 'Too Many Attempts','code' => 429], 429)->withHeaders($exception->getHeaders());}
-
GCT1015
在您的 Laravel 异常处理程序中,您可以在渲染之前处理该异常并将该异常替换为您的自定义异常。在app/Exceptions/Handler.php/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $exception * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */public function render($request, Exception $exception){ if($exception instanceof ThrottleRequestsException) { return parent::render( $request, new ThrottleRequestsException( 'Your message', $exception->getPrevious(), $exception->getHeaders(), $exception->getCode() ) ); } return parent::render($request, $exception);}
-
阿波罗的战车
您可以在app/Http/Middlewares文件夹中创建自定义中间件,扩展基\Illuminate\Routing\Middleware\ThrottleRequests类并覆盖buildException方法(此处为原始实现)。然后将throttle中间件分配给您的自定义中间件类Kernel.php
-
精慕HU
我在 Laravel 的这个地址找到了它的文件: vendor\laravel\framework\src\llluminate\Routing\Middleware\ThrottleRequests.phpprotected function buildException($key, $maxAttempts) { $retryAfter = $this->getTimeUntilNextRetry($key); $headers = $this->getHeaders( $maxAttempts, $this->calculateRemainingAttempts($key, $maxAttempts, $retryAfter), $retryAfter ); return new ThrottleRequestsException( 'You can change message here and put your message!', null, $headers ); }