Php Laravel-所有可能错误的一个视图
所以我想用一个视图涵盖所有可能的和意外的错误(比如401404500)。我希望在所有可能的错误上显示相同的视图。我想出了一个解决方案——复制/粘贴相同的代码,并用不同的错误代码命名视图。但这似乎是僵硬和错误的。有更好的方法来实现这一点吗?将错误代码传递给处理程序上的视图,并在页面上显示代码,使用开关根据错误代码处理所有消息。您可以创建一个唯一的视图(默认为404错误),在代码中使用try-catch捕获其他错误,并使用参数调用此视图,以便将404默认错误更改为其他错误。实现此效果的更简洁的方法是修改 修改Php Laravel-所有可能错误的一个视图,php,laravel,error-handling,Php,Laravel,Error Handling,所以我想用一个视图涵盖所有可能的和意外的错误(比如401404500)。我希望在所有可能的错误上显示相同的视图。我想出了一个解决方案——复制/粘贴相同的代码,并用不同的错误代码命名视图。但这似乎是僵硬和错误的。有更好的方法来实现这一点吗?将错误代码传递给处理程序上的视图,并在页面上显示代码,使用开关根据错误代码处理所有消息。您可以创建一个唯一的视图(默认为404错误),在代码中使用try-catch捕获其他错误,并使用参数调用此视图,以便将404默认错误更改为其他错误。实现此效果的更简洁的方法是
App\Exceptions\Handler
以捕获每个错误并返回共享的自定义错误页面
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $e)
{
if ($e instanceof NotFoundHttpException) {
return response()->view('errors.custom', [], 404);
}
return parent::render($request, $e);
}
可能需要进行一些定制,以完全满足您希望数据传递到共享自定义视图的内容和方式。在文件app/Exceptions/Handler.php中,您可以更改引发异常时发生的情况。特别是其中有一个
render
方法,可用于捕获应用程序中的所有异常
public function render($request, Exception $e)
{
// Handle your error here. Perhaps you can show a view
// when a condition is met. Anything that isn't caught
// here will be handled by Laravel with the
// parent::render call below
return parent::render($request, $e);
}
parent::render($request,$e)
是Laravel通常显示其异常/oops页面的地方。因此,通过重写此方法,您可以捕获所有应用程序错误,包括404、401等