如何使用 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');

注意路径开头的斜杠 /。