扩展 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 ]);
我建议您适度使用它,否则您最终会得到一堆没有真正指定用途的目录。
我正在做一个 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 ]);
我建议您适度使用它,否则您最终会得到一堆没有真正指定用途的目录。