我想将Laravel 5.2版默认404页面重定向到我的模板页面404,从哪里以及要更改的内容

时间:2016-03-07 06:06:36

标签: laravel laravel-5.2

我使用的是Laravel 5.2版,不知道如何将Laravel默认页面重定向到我的模板404页面

4 个答案:

答案 0 :(得分:10)

使用abort(404);

  

一些例外描述了来自服务器的HTTP错误代码。对于   例如,这可能是“未找到页面”错误(404),“未经授权   错误“(401)或甚至开发人员生成500错误。为了   从应用程序的任何位置生成这样的响应,使用   以下内容:

abort(404);

如果您在路由或控制器中的任何位置调用abort(404);,它将抛出HTTPNotFoundException,它会查找要在resources/views/errors/目录中显示的刀片模板,其文件名与错误代码相同。< / p>

示例:

app/Http/routes.php

Route::get('/test', function(){
   return abort(404);
});

在您的resources/views/errors/目录中创建 404 .blade.php,请注意该文件的名称与中止相对应( 404 );

参考:https://laravel.com/docs/5.2/errors#http-exceptions

答案 1 :(得分:1)

修改app / Exceptions / Handler.php并添加如下几行:-

public function render($request, Exception $e)
{
  if ($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException) 
  {
    return redirect('/');
  } 
 return parent::render($request, $e); }

使用您的路线名称代替/重定向。

答案 2 :(得分:0)

在/ resources / views / errors目录中有一个404页面

编辑此页面,您可以使其看起来像您想要的那样

答案 3 :(得分:0)

创建视图并在 app / Exceptions / Handler.php 中设置此代码:

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
.
.
.
public function render($request, Exception $exception)
{
    if($exception instanceof NotFoundHttpException)
    {
        return response()->view('missing', [], 404);
    }
    return parent::render($request, $e);
}