如何使用 CI4 解析器服务从模块渲染视图
How to use CI4 parser service to render view from module
我正在尝试从模块文件夹加载视图,因为 CI 总是在 App/View 文件夹中查找视图,如何覆盖它以提供来自 ROOTPATH 而不是 [=16] 的完整路径=]
$parser = \Config\Services::parser();
$parser->setData(['variable' => $variable])->render('modules\PluginName\Views\index');
错误
CodeIgniter\View\Exceptions\ViewException
无效文件:{path/to/project}/app/Config/../Views/modules/PluginName/Views/index.php
您正在使用相对于默认视图路径的路径。
您可以:
1.在 CodeIgniter 4 文件夹结构中的 Config/Path.php 文件中编辑以下行:
public $viewDirectory = __DIR__ . '/../Views';
至
public $viewDirectory = '/modules/PluginName/Views';
来自文件中的评论:
此变量必须包含目录的名称,该目录包含您的应用程序使用的视图文件。默认情况下,这是在 app/Views
中。这个值
当没有值提供给 Services::renderer()
.
时使用
或
2。将其设置为该解析器的绝对路径:
$parser->setData(['variable' => $variable])->render('/modules/PluginName/Views/index');
注意路径开头的斜杠 /。
我正在尝试从模块文件夹加载视图,因为 CI 总是在 App/View 文件夹中查找视图,如何覆盖它以提供来自 ROOTPATH 而不是 [=16] 的完整路径=]
$parser = \Config\Services::parser();
$parser->setData(['variable' => $variable])->render('modules\PluginName\Views\index');
错误 CodeIgniter\View\Exceptions\ViewException 无效文件:{path/to/project}/app/Config/../Views/modules/PluginName/Views/index.php
您正在使用相对于默认视图路径的路径。
您可以:
1.在 CodeIgniter 4 文件夹结构中的 Config/Path.php 文件中编辑以下行:
public $viewDirectory = __DIR__ . '/../Views';
至
public $viewDirectory = '/modules/PluginName/Views';
来自文件中的评论:
此变量必须包含目录的名称,该目录包含您的应用程序使用的视图文件。默认情况下,这是在 app/Views
中。这个值
当没有值提供给 Services::renderer()
.
或
2。将其设置为该解析器的绝对路径:
$parser->setData(['variable' => $variable])->render('/modules/PluginName/Views/index');
注意路径开头的斜杠 /。