Sag*_*tam 1 php exception laravel
我目前正在一个项目中工作,我可以在其中公开查看前端和后端以用于管理目的。
我想在遇到 404 错误时为后端和前端显示单独的错误页面。
在 laravel 中可以做吗?
或者我们也可以根据命名空间制作错误页面吗?
目前我的目录中有错误页面/resources/views/errors/。
任何建议表示赞赏。如果需要更多信息,请随时询问。
我知道这已经是一年前的事了,但只是为了建立在这个答案的基础上。我建议更好的方法是不要在方法中编写 if 语句render,而是下拉getHttpExceptionView()方法并覆盖它。
(将此代码片段添加到您的代码中App\Exceptions\Handler.php- 它会覆盖父类中的内容)
/**
* Get the view used to render HTTP exceptions.
*
* @param \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface $e
* @return string
*/
protected function getHttpExceptionView(HttpExceptionInterface $e)
{
$adminErrorView = "admin.errors.{$e->getStatusCode()}";
if (Str::is('admin*', request()->path())) {
if (view()->exists($adminErrorView)) {
return $adminErrorView;
}
}
return "errors::{$e->getStatusCode()}";
}
Run Code Online (Sandbox Code Playgroud)
这样,如果您的请求路径来自“admin”(或任何路径中带有 admin 的任何内容),它将获取您可以在其中创建的自定义错误文件views/admin/errors- 按照前端的方式命名它们...通过错误状态码(404.blade.php、500.blade.php等)
(编辑:对我的代码进行了调整,这样即使视图尚不存在,它也会默认返回到正常的前端错误视图)