Codeigniter 4查看文件无效



我正在使用带模块的代码点火器4。我得到错误无效文件:Admin/valid_faq.php视图路径有什么问题?我的模块结构如下

app
--modules
-- Faq
--controller
--Models
--Views
--Admin
--view_faq

echo view('layout/header', $data);
echo view('layout/sidebar');
echo view('Admin/view_faq', $data);
echo view('layout/footer');

我已经给出了完整的路径,但它也不起作用。

echo view('App/Modules/Faq/Views/Admin/view_faq');
echo view('Modules/Faq/Views/Admin/view_faq');

我已经添加到自动加载以及

public $psr4 = [
APP_NAMESPACE => APPPATH, // For custom app namespace
'Config'      => APPPATH . 'Config',
'Modules'     => APPPATH . 'Modules',
];

当我检查视图文件时SYSTEMPATHCommon.php : 1121 — CodeIgniterViewView->render ( arguments )

F:xampphtdocsmodularcmsappConfig/../Views/Modules/Faq/Views/Admin/view_faq.php

这是工作

echo view('../Modules/Faq/Views/Admin/view_faq', $data);

路径中的我的视图目录

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

错误功能

public static function renderer(string $viewPath = null, $config = null, bool $getShared = true)
{
if ($getShared)
{
return static::getSharedInstance('renderer', $viewPath, $config);
}
if (is_null($config))
{
$config = new ConfigView();
}
if (is_null($viewPath))
{
$paths = config('Paths');
$viewPath = $paths->viewDirectory;
}
return new CodeIgniterViewView($config, $viewPath, static::locator(), CI_DEBUG, static::logger());
}

我不清楚您的模块目录。假设您希望保留一个简单的Faq模块,以便在应用程序之间重复使用。您可以创建名为faq的文件夹,将所有模块存储在其中。您将把它放在主项目根目录中的应用程序目录旁边:

/faq        // modules directory
/app
/public
/system
/tests
/writable

打开app/Config/Autoload.php并将Faq命名空间添加到psr4数组属性:

$psr4 = [
'Config'        => APPPATH . 'Config',
APP_NAMESPACE   => APPPATH,                // For custom namespace
'App'           => APPPATH,                // To ensure filters, etc still found,
'Faq'          => ROOTPATH.'faq'
];

模块中的通用目录结构将模仿主应用程序文件夹:

/faq
/modules
/Config
/Controllers
/Database
/Helpers
/Language
/Libraries
/Models
/Views
/Admin
/view_faq

视图:

echo view('FaqModulesViewsview_faq', $data);

可能已经太晚了,但也许其他人——比如我——正在寻找它。解决方案就在那里:用小写写Views文件夹中的文件夹,并在其后面加一个双反斜杠

echo view('ModulesFaqViewsadmin\view_faq');

最新更新