扩展 Laravel 中的 blade 引擎以使用不同的视图目录

Extend blade engine in Laravel to use different views directory

我正在做一个 Laravel 项目,我对它还很陌生。现在,我想使用 blade 模板来呈现视图,但我希望它在不同的目录中搜索视图,例如 <custom_dir>\views 而不是默认的 resources/views<custom_dir> 将是动态的(它可以是一个变量)。

有什么想法吗?我在考虑一个自定义服务提供者,然后扩展默认函数,该函数在其中呈现 Laravel 中的视图。但不知道如何实现。

编辑: 我有这个 link 用户来扩展 blade 模板引擎中 include 函数的默认功能。但这会覆盖包含功能。我想更改路径,然后调用默认 blade 功能

您可以在 resources\views 目录中创建自定义目录并像这样使用它们:

return view($customDirectory.'.index');

其中 index 是自定义目录中的模板。

您可以将路径附加到配置中:

1) 静态地,通过修改文件 config/view.php

'paths' => [
    realpath(base_path('resources/views')),
    //more paths here
],

2) 在运行时动态:

$paths = config('view.paths');
$paths[] = $newPathToAdd;
config(["view.paths" => $paths ]);

我建议您适度使用它,否则您最终会得到一堆没有真正指定用途的目录。