首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter 4视图文件无效

Codeigniter 4视图文件无效
EN

Stack Overflow用户
提问于 2020-10-31 13:08:09
回答 2查看 1.6K关注 0票数 0

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

代码语言:javascript
复制
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');

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

代码语言:javascript
复制
    echo view('App/Modules/Faq/Views/Admin/view_faq');
    echo view('Modules/Faq/Views/Admin/view_faq');

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

代码语言:javascript
复制
public $psr4 = [
    APP_NAMESPACE => APPPATH, // For custom app namespace
    'Config'      => APPPATH . 'Config',
    'Modules'     => APPPATH . 'Modules',
];

当我检查视图文件SYSTEMPATH\Common.php : 1121 — CodeIgniter\View\View->render ( arguments )

F:\xampp\htdocs\modularcms\app\Config/../Views/Modules/Faq/Views/Admin/view_faq.php

这是有效的

代码语言:javascript
复制
echo view('../Modules/Faq/Views/Admin/view_faq', $data);

我的视图目录中的路径

代码语言:javascript
复制
 public $viewDirectory = __DIR__ . '/../Views';

错误函数

代码语言:javascript
复制
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 \Config\View();
    }

    if (is_null($viewPath))
    {
        $paths = config('Paths');

        $viewPath = $paths->viewDirectory;
    }

    return new \CodeIgniter\View\View($config, $viewPath, static::locator(), CI_DEBUG, static::logger());
}
EN

回答 2

Stack Overflow用户

发布于 2020-11-03 00:58:45

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

代码语言:javascript
复制
/faq        // modules directory
/app
/public
/system
/tests
/writable

打开app/Config/Autoload.php并将常见问题解答命名空间添加到psr4数组属性:

代码语言:javascript
复制
$psr4 = [
    'Config'        => APPPATH . 'Config',
    APP_NAMESPACE   => APPPATH,                // For custom namespace
    'App'           => APPPATH,                // To ensure filters, etc still found,
    'Faq'          => ROOTPATH.'faq'
];

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

代码语言:javascript
复制
/faq
    /modules
        /Config
        /Controllers
        /Database
        /Helpers
        /Language
        /Libraries
        /Models
        /Views
            /Admin
               /view_faq

查看:

代码语言:javascript
复制
echo view('Faq\Modules\Views\view_faq', $data);
票数 1
EN

Stack Overflow用户

发布于 2022-01-21 09:25:26

可能已经太晚了,但也许其他人-比如我-正在寻找它。对我来说,解决方案就在那里:将文件夹写在Views文件夹中,用小写字母表示,并在其后面加上一个双反斜杠。因此,在您的示例中:

代码语言:javascript
复制
echo view('Modules\Faq\Views\admin\\view_faq');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64618618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档