Php 即使已调用控制器,也未触发CodeIgniter索引功能

Php 即使已调用控制器,也未触发CodeIgniter索引功能,php,codeigniter,codeigniter-2,Php,Codeigniter,Codeigniter 2,简而言之:下面的代码示例不回显“我在这里!”它不会从_构造函数回显。如果我将echo语句移到类上方,它将进行回显,这样我就知道CI正在到达该控制器 背景故事: 我继承了一个在CodeIgniter 2.1.2中完成的项目。我应该将一个应用程序复制到另一个具有不同子域的目录,并将数据库配置指向不同的数据库。我在配置中更新了数据库。我已经更新了基本浴室。我已将环境设置为“开发”,以便获取错误消息。没有错误 if(!defined('BASEPATH')) 退出(“不允许直接脚本访问”); 如果(!i

简而言之:下面的代码示例不回显“我在这里!”它不会从_构造函数回显。如果我将echo语句移到类上方,它将进行回显,这样我就知道CI正在到达该控制器

背景故事:

我继承了一个在CodeIgniter 2.1.2中完成的项目。我应该将一个应用程序复制到另一个具有不同子域的目录,并将数据库配置指向不同的数据库。我在配置中更新了数据库。我已经更新了基本浴室。我已将环境设置为“开发”,以便获取错误消息。没有错误

if(!defined('BASEPATH'))
退出(“不允许直接脚本访问”);
如果(!ini_get('date.timezone')){
日期\默认\时区\设置(“我的时区”);
}
类登录扩展CI_控制器{
公共函数构造(){
父项::_构造();
$this->load->model('mod_login');
$this->load->helper('date');
}
函数索引(){
回声“我在这里!”//没有回声
}
功能注销{
//这里有注销功能。
}
}

这里的任何CodeIgniter粉丝都知道为什么?

控制器的类名必须是大写。从文件:

注意:类名必须以大写字母开头

换句话说,这是有效的:

<?php
class Blog extends CI_Controller {

}
?>

这是无效的:

<?php
class blog extends CI_Controller {

}
?> 


更多信息:

您的控制器应该是这样的

<?php    
    if (!defined('BASEPATH'))
        exit('No direct script access allowed');

    class Login extends CI_Controller
    {
        function __construct()
        {
            parent::__construct();
            $this->load->model('mod_login');
            $this->load->helper('date');

        }

        public function index()
        {
            echo "Here I am!";
        }


     }
额外说明:(删除URL中的
index.php
) 在
config/config.php中

$route['default_controller'] = "login";/set default conntoller
$config['base_url'] = '';
$config['index_page'] = '';
.htaccess
(放在应用程序文件夹外)


重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]

谢谢。它没有改变或修复任何东西,但我不想让坏表单永久化。这是您控制器的完整代码吗?下面还有其他函数,但没有被调用。此外,我没有包括CI_控制器,因为它是标准的codeigniter,我没有修改它。这个控制器在原始应用程序的原始文件夹中工作正常,我以前在添加函数时没有遇到过问题。逐行调试可能是您可能会遇到问题,如签入类回显一些事情,如果可以,然后在构造函数之后等等。我不确定,但可能是您的模型或助手未加载。或者在没有加载模型和助手的情况下尝试,它是否会转到索引函数。您编写了cho而不是echo。是的。不走运。再说一次,需要说明的是,它到达了这个控制器,CI正在加载login.php,因为如果我把它放在类声明之上,就会显示echo“Here I am”。我已经完成了.htaccess,就像你展示的一样。
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>