我正在使用Laravel 5.5。有以下课程
供应商\ laravel \框架\ SRC \照亮\路由\中间件\ ThrottleRequests.php
使用方法名称:buildException
在Laravel 5.4中,我能够像下面这样在这个方法中返回JSON。
protected function buildException($key, $maxAttempts)
{
$retryAfter = $this->getTimeUntilNextRetry($key);
$headers = $this->getHeaders(
$maxAttempts,
$this->calculateRemainingAttempts($key, $maxAttempts, $retryAfter),
$retryAfter
);
return response()->json('429 Too many requests');
}
当我尝试使用Laravel 5.5在上述方法中返回JSON时,它说
无法抛出未实现Throwable的对象
现在可以肯定的是,我如何在Laravel 5.5中为上述方法返回JSON
答案 0 :(得分:1)
嗯,你现在不能这样做了。您需要返回异常类。但你可以做的是返回一些自定义异常类,然后在`{1}}中使用`render方法添加:
app/Exceptions/Handler.php
当然,如果你真的需要,你可以添加自己的if ($e instanceof YourCustomException) {
return response()->json('429 Too many requests');
}
方法实现,而不是抛出异常,你可以直接在那里返回响应,但可能抛出自定义异常并在Handler类中处理它是更好的选择。