Skip to content
Advertisement

How to use CI4 parser service to render view from module

I’m trying to load views from module folder, since CI always look for views in App/View folder, how this can be overwritten to give complete path from ROOTPATH instead of APPPATH/Views

$parser = ConfigServices::parser();
$parser->setData(['variable' => $variable])->render('modulesPluginNameViewsindex');

Error CodeIgniterViewExceptionsViewException Invalid file: {path/to/project}/app/Config/../Views/modules/PluginName/Views/index.php

Advertisement

Answer

You are using a path relative to the default Views path.

You could either:

1. Edit the line below in your Config/Path.php file in CodeIgniter 4 folder structure:

public $viewDirectory = __DIR__ . '/../Views';

to

public $viewDirectory = '/modules/PluginName/Views';

From the comments in the file: This variable must contain the name of the directory that contains the view files used by your application. By default this is in app/Views. This value is used when no value is provided to Services::renderer().

or

2. Set it as an absolute path for that parser:

$parser->setData(['variable' => $variable])->render('/modules/PluginName/Views/index');

Notice the slash / at the begining of the path.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement