自定义 404 laravel

Custom 404 laravel

如果我们只是在 resources/views/error 中创建一个 404.blade.php 页面,它会工作正常,但 Auth() 将无法在 404 页面上工作,以解决如果我们遵循 Whosebug 上可用的解决方案,Laravel 身份验证错误将停止工作。我使用以下解决方案来完成这项工作。

创建自定义视图

resources/views/errors/404.blade.php

在route.php

Route::any('{catchall}', 'PageController@notfound')->where('catchall', '.*');

创建PageController并添加此功能

public function notfound() 
{ 
    return view('errors.404'); 
}

在您的 Exceptions/Handler.php

中写入以下代码
if($this->isHttpException($exception)){
   if(view()->exists('errors.'.$exception->getStatusCode())){
        $code = array('status'=>$exception->getStatusCode());
          return response()->view('errors.404',compact('code'));
       }
   }

现在在您的视图中创建一个新文件,即 errors/404;

现在您可以在代码数组中传递动态值

对于 Laravel 5.6 及更高版本,您可以在 routes\web.php:

中使用 fallback

Route::fallback('MyController@show404');

它作为 "catch all" 路线工作。

See docs here.

不确定这是否有帮助。 Laravel 有一个 PHP artisan 命令来发布错误页面。 Laravel Custom HTTP Error Pages

在你 运行 这个 artisan 命令之后使用 @KFoobar 建议的 Route:fallback() 方法。如果使用闭包函数,则无需使用控制器。确保在路由文件的末尾添加以下路由。

   //Fallback/Catchall Route
   Route::fallback(function () {
       return view('errors.layout');
   });

我的无耻插件BLOG