CodeIgniter不会从我的控制器加载函数

时间:2013-10-31 14:43:20

标签: php codeigniter codeigniter-classloader

我今天开始使用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'] = '';

2 个答案:

答案 0 :(得分:0)

我会确保控制器类有一个构造函数来加载基本的codeigniter基类。

function __construct()
{
    parent::__construct();
}
每个控制器类中的

告诉您的类使用代码点火器系统。如果这不存在,它将不知道如何加载这些功能。

为了清楚起见,请确保它通过url / site / about等调用其他方法... 另外,您是否在开发服务器上显示了php错误?

答案 1 :(得分:0)

如果由于以上解决方案都无法解决而导致有人遇到这个问题,那么您可以尝试以下步骤使事情解决(xampp本地化):

  1. base_url中的config.php更改为http://localhost/application-name/
  2. 清空index_page(默认值为index.php
  3. 转到应用程序的根文件夹,并检查index.php是否存在
  4. 在其中放入.htaccess个文件并写入其中:

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