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

时间:2015-08-27 21:03:10

标签: php codeigniter codeigniter-2

简短:下面的代码示例不回应"我在这里!"它不会从_construct函数回显。如果我将echo语句移到类上面就会回显,所以我知道CI正在到达这个控制器。

背景故事:

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

{{1}}

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

2 个答案:

答案 0 :(得分:1)

控制器的类名必须为大写。来自文档:

  

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

换句话说,这是有效的:

<?php
class Blog extends CI_Controller {

}
?>

这是有效:

<?php
class blog extends CI_Controller {

}
?> 

更多:https://ellislab.com/codeigniter/user-guide/general/controllers.html#hello

答案 1 :(得分:1)

您的控制器应该是这样的。

<?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!";
        }


     }

和控制器名称应为loging.php

并在config/routes.php

$route['default_controller'] = "login";/set default conntoller

额外备注:(删除网址中的index.php

config/config.php

中的

$config['base_url'] = '';
$config['index_page'] = '';

.htaccess(放置在应用程序文件夹之外)

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>