3 回答
TA贡献1786条经验 获得超11个赞
添加刀片页面resources/views/errors/503.blade.php
您可以使用 Artisan 命令发布 Laravel 的错误页面模板vendor:publish
。模板发布后,您可以根据自己的喜好对其进行自定义:
php artisan vendor:publish --tag=laravel-errors
此命令将在目录中创建所有自定义错误页面resources/views/errors/
。您可以根据需要进行定制。
TA贡献1871条经验 获得超8个赞
只需去掉 if 语句即可:
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Throwable $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Throwable $exception)
{
return response()->view('errors.site_down', [], 503);
}
如果您试图声称该网站已关闭以进行维护,您可能还需要返回 503。
在批评这种方法时,我认为声称网站正在维护您的错误对您的用户来说是不诚实和透明的,从长远来看这不会得到回报。
TA贡献1895条经验 获得超3个赞
对于自定义异常,首先您必须创建一个自定义异常文件,最好在异常文件夹中App\Exceptions\CustomException.php
<?php
namespace App\Exceptions;
use Exception;
class CustomException extends Exception
{
//
}
然后在你的异常处理程序文件中App\Exceptions\Handler.php
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use App\Exceptions\CustomException as CustomException;
use Throwable;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* Report or log an exception.
*
* @param \Throwable $exception
* @return void
*/
public function report(Throwable $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Throwable $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Throwable $exception)
{
// Thrown when a custom exception occurs.
if ($exception instanceof CustomException) {
return response()->view('error.page.path', [], 500);
}
// Thrown when an exception occurs.
if ($exception instanceof Exception) {
response()->view('errors.page.path', [], 500);
}
return parent::render($request, $exception);
}
}
请记住use App\Exceptions\CustomException;在需要抛出自定义异常的地方自定义异常文件,如下所示:
use App\Exceptions\CustomException;
function test(){
throw new CustomException('This is an error');
}
- 3 回答
- 0 关注
- 135 浏览
添加回答
举报