0

我今天开始使用 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,但是当我访问以下地址时:localhost:8899/index.php/site/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'] = '';
4

2 回答 2

0

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

function __construct()
{
    parent::__construct();
}

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

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

于 2013-11-02T08:45:47.817 回答
0

如果有人遇到了这个问题,因为上面没有解决方案,好的,你可以尝试这些步骤,我得到了这个东西(本地与 xampp):

  1. 将输入更改base_urlconfig.phphttp://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]
    
于 2019-03-13T10:11:40.117 回答