2
在应用程序启动之前,我需要检查几件事情,如果出错加载错误页面。全部在App:before
过滤器完成,除了return
,因为它只是不工作。是否有可能阻止从before
过滤器的应用程序?是否有可能在App中返回:在Laravel中过滤之前?
在应用程序启动之前,我需要检查几件事情,如果出错加载错误页面。全部在App:before
过滤器完成,除了return
,因为它只是不工作。是否有可能阻止从before
过滤器的应用程序?是否有可能在App中返回:在Laravel中过滤之前?
我会试着抛出一个异常。你可以定义一个像BootstrapException
。然后,你如果事情在App::before()
出错扔:
App::before(function ($request) {
// do checks
if (/* checks failed */) {
throw new BootstrapException;
}
});
之后,你可以收听start/global.php
该异常(如),其中已经有一个App::error()
电话:
App::error(function (BootstrapException $exception, $code) {
return Response::view('errorpage', [], $code);
});
我不知道这个,但把App::error()
之前捕获全部App::error(function (Exception $exception, $code) { ... });
定义在start/global.php
,因为每个例外是从Exception
派生,所以你的BootstrapException
将被捕获通过该错误处理调用,而不是由您的特定错误处理代码。