【问题标题】:Codeigniter possible re-direct/autoload?Codeigniter可能重定向/自动加载?
【发布时间】:2017-06-28 13:33:40
【问题描述】:

我是 codeIgniter 的新手,在学习教程时遇到了问题;我正在尝试使用 codeigniter 构建一个基本的 CMS,但我不断收到以下错误:

string(42) "/var/www/html/trc.better2know.net/httpdocs" 致命错误: 在中找不到类“Frontend_Controller” /var/www/html/trc.better2know.net/application/controllers/Welcome.php 在第 4 行

我的配置文件中有以下自动加载:

 function __autoload($classname) {
    if (strpos($classname, 'CI_') !== 0) {
        $file = APPPATH . 'controller/' . $classname . '.php';
        if (file_exists($file) && is_file($file)) {
            @include_once($file);
        }
    }
}

还有这个 htaccess 文件:

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on

#Send requests via index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

我尝试将 Frontend_Controller 移动到与 MY_Controller 相同的文件中,但仍然不满意,我是否遗漏了一些明显的东西?

【问题讨论】:

  • 告诉我们,您使用的是哪个版本的 CI?请尝试仅将“前端”作为类名和文件名。
  • 通常自动加载功能设置为使用/加载core目录文件/类。 IE。 $file = APPPATH . 'core/' . $classname . '.php';。除此之外,尽管目录名称是复数形式,但您使用的是单数目录名称。试试$file = APPPATH . 'controllers/' . $classname . '.php';
  • 谢谢,我确实错过了一个“S”,但问题仍然存在,我尝试将我的控制器移动到库中,但再次失败。我收到 Frontend_Controller 类的错误不存在,但我不明白为什么我会抛出这个错误,我在我的服务器上安装了一个全新的 codeigniter,并三重检查了我所有的配置代码

标签: php codeigniter


【解决方案1】:

Codeigniter 有自己的自动加载功能。你不需要创建一个你自己的。 https://www.codeigniter.com/user_guide/general/autoloader.html

【讨论】:

  • 仍然没有运气,它试图从错误的目录加载我的自定义类 Frontend_Controller 因此我尝试了自定义自动加载器
  • 从我在您的问题中读到的内容,也许您应该花一些时间来完全理解 Codeigniter 中 MVC(模型视图控制器)的行为。您说:我尝试将 Frontend_Controller 移动到与 MY_Controller 相同的文件中,但仍然没有乐趣。同一个文件中不能有两个控制器。要使用新控制器,您必须查看路由。 codeigniter.com/userguide3/general/routing.html
  • 所以你告诉我每个目录只能有 1 个控制器?我是 MVC 框架的新手,所以建议很有用。我目前在库文件夹中有 2 个控制器:Frontend_Controller 和 Admin_Controller。当我从欢迎页面加载前端控制器时,它现在工作正常但是当我尝试加载管理控制器时,我得到以下信息:致命错误:在 /var/www/html/trc.better2know.net/application 中找不到类“Admin_Controller” /controllers/Welcome.php 在第 4 行,但如果我更改 Welcome to extends Frontend_Controller 中的类,我不会收到此错误
  • 不,你可以在一个目录中拥有任意数量的控制器,我理解的是别的,抱歉。
  • 没关系,我想通了,问题出在我的文件夹结构上。谢谢
猜你喜欢
  • 2014-11-29
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 2017-06-27
  • 1970-01-01
  • 2017-09-02
  • 2012-12-05
  • 1970-01-01
相关资源
最近更新 更多