我今天开始使用CodeIgniter,我正在关注phpacademy的初学者教程。 现在我遇到了一个奇怪的问题,我得到了以下非常简单的控制器:
<?php if ( ! defined('BASEPATH')) exit("No direct script access allowed");
class Site extends CI_Controller {
public function index()
{
}
public function home()
{
$this->load->view("view_home", $data);
}
function about()
{
$data['title'] = "About!";
$this->load->view("view_about", $data);
}
function test()
{
echo "test";
}
}
它总是加载索引函数。当我测试它时,它会回应我希望它回应的任何东西。但是,当我打电话给其他功能时,没有任何事情发生。
我还没有设置我的.htacces,但是当我访问以下地址时: 本地主机:8899 / index.php的/站点/家
它不加载home功能。其他功能也是如此(“约”和“测试”);
当我从index()函数中调用其中一个函数(“home”,“about”和“test”)时,它会调用它应该如何:
class Site extends CI_Controller {
public function index()
{
$this->home();
}
public function home()
{
$this->load->view("view_home", $data);
}
我不确定这里出了什么问题。希望有人可以指导我朝着正确的方向前进!
我的路线:
<?php if ( ! defined('BASEPATH')) exit("No direct script access allowed");
$route['default_controller'] = "site";
$route['404_override'] = '';
答案 0 :(得分:0)
我会确保控制器类有一个构造函数来加载基本的codeigniter基类。
function __construct()
{
parent::__construct();
}
每个控制器类中的告诉您的类使用代码点火器系统。如果这不存在,它将不知道如何加载这些功能。
为了清楚起见,请确保它通过url / site / about等调用其他方法... 另外,您是否在开发服务器上显示了php错误?
答案 1 :(得分:0)
如果由于以上解决方案都无法解决而导致有人遇到这个问题,那么您可以尝试以下步骤使事情解决(xampp本地化):
base_url
中的config.php
更改为http://localhost/application-name/
index_page
(默认值为index.php
)index.php
是否存在在其中放入.htaccess
个文件并写入其中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]