Php 定制404拉威尔

Php 定制404拉威尔,php,laravel,http-status-code-404,laravel-authentication,Php,Laravel,Http Status Code 404,Laravel Authentication,如果我们只是在resources/views/error中创建一个404.blade.php页面,它可以正常工作,但是Auth()无法在404页面上工作,要解决这个问题,如果我们遵循stackoverflow上可用的解决方案,Laravel Auth错误将停止工作。我使用以下解决方案来完成这项工作。创建自定义视图 resources/views/errors/404.blade.php 在route.php中 Route::any({catchall}','PageController@notf

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

创建自定义视图

resources/views/errors/404.blade.php

在route.php中

Route::any({catchall}','PageController@notfound')->其中('catchall','.');
创建
PageController
并添加此功能

未找到公共函数()
{ 
返回视图('errors.404');
}
创建自定义视图

resources/views/errors/404.blade.php

在route.php中

Route::any({catchall}','PageController@notfound')->其中('catchall','.');
创建
PageController
并添加此功能

未找到公共函数()
{ 
返回视图('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


现在,在代码数组中,您可以传递动态值,并在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');

它是一条“通吃”路线


.

对于Laravel 5.6及更高版本,您可以在
routes\web.php
中使用
fallback

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

它是一条“通吃”路线


.

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

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

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

我的无耻插头

不确定这是否有用。Laravel有一个PHP artisan命令来发布错误页面

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

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

我的无耻插件

嗨,我很难理解你的问题,请你澄清一下,或者添加一些代码。是的,它在你的404页面上不起作用。如果你想在404页面中使用auth,那么你必须手动捕捉路线并创建你自己的控制器。是的,我已经有了解决方案。创建resources/views/errors/404.blade.php(您的自定义页面)将以下内容添加到routes.php``Route::any('{catchall}','PageController@notfound')->where('catchall','.'');`现在在页面控制器中使用notfound函数“``公共函数notfound(){return view('errors.404');}``这不会影响身份验证错误。我在帖子上回答了,但是被删除了。@AkilPatel,那是great@kamlesh如果你能把我的评论作为答案抄下来,这对其他人也会有帮助嗨,我很难理解你的问题,请你澄清一下,或者添加一些代码。是的,它在404页上不起作用。如果你想在404页上使用auth,那么你必须手动捕获路由并创建自己的控制器。是的,我已经有了解决方案。创建resources/views/errors/404.blade.php(您的自定义页面)将以下内容添加到routes.php``Route::any('{catchall}','PageController@notfound')->where('catchall','.'');`现在在页面控制器中使用notfound函数“``公共函数notfound(){return view('errors.404');}``这不会影响身份验证错误。我在帖子上回答了,但是被删除了。@AkilPatel,那是great@kamlesh如果你能把我的评论作为答案抄下来,这对其他人也会有帮助,这是非常有用的。一定要参加拉威尔8号的比赛。我实际上使用了Laravel6和Laravel7,404页面正在处理它们。然而,同样的方法在Laravel 8中的某些区域不起作用。尤其是出现了这样的错误。(Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException此路由不支持GET方法。支持的方法:PUT、DELETE。)由于此方法,此错误在Laravel 8中得到了修复。它非常有用。一定要参加拉威尔8号的比赛。我实际上使用了Laravel6和Laravel7,404页面正在处理它们。然而,同样的方法在Laravel 8中的某些区域不起作用。尤其是出现了这样的错误。(Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException此路由不支持GET方法。支持的方法:PUT、DELETE。)由于此方法,此错误在Laravel 8中得到了修复。