简短:下面的代码示例不回应"我在这里!"它不会从_construct函数回显。如果我将echo语句移到类上面就会回显,所以我知道CI正在到达这个控制器。
背景故事:
我继承了CodeIgniter 2.1.2中完成的项目。我应该将应用程序复制到另一个具有不同子域的目录,并将数据库配置指向另一个数据库。我在配置中更新了数据库。我更新了基浴。我已经将环境设置为开发,因此我可以收到错误消息。没有错误。
{{1}}
这里的任何CodeIgniter粉丝都知道为什么?
答案 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>