更改错误视图的路径

时间:2016-01-05 14:18:08

标签: laravel laravel-5 laravel-5.2

从文档中我看到我只需要在resources/views/errors/内创建新的刀片文件并使用abort(newhtmlerrorno)

进行调用

如果我想使用其他目录中的刀片文件,这是可能的,还是必须位于基本应用resources/views/errors/

3 个答案:

答案 0 :(得分:3)

App\Exceptions\Handler课程中,将其添加到渲染方法的开头:

public function render($request, Exception $e)
{
    if ($this->isHttpException($e)) {
        $statusCode = $e->getStatusCode();
        return view("custom.path.{$statusCode}");
    }

    // ...
}

视图路径上的error文件夹是Illuminate\Foundation\Exceptions\Handler类中的硬编码,您的本地应用Handler扩展了该类。因此,您无法在不覆盖该特定类的情况下配置自定义路径。

答案 1 :(得分:0)

找到文件App \ Exceptions \ Handler和replce函数,并在下面进行渲染

{{1}}

答案 2 :(得分:0)

Laravel 5.8中有一个方法\ Illuminate \ Foundation \ Exceptions \ Handler :: registerErrorViewPaths。您可以在\ App \ Exceptions \ Handler类中简单地覆盖它:

protected function registerErrorViewPaths()
{
    $paths = collect(config('view.paths'));

    View::replaceNamespace('errors', $paths->map(function ($path) {
        return "{$path}/YOUR_CUSTOM_PATH/errors";
    })->push(__DIR__.'/views')->all());
}