为什么Code Igniter给我一个白页?

嘿,不知道为什么CodeIgniter给我一个空白页面,当我加载一个简单的模型。 我打破了代码,倒退了,我无法弄清楚有什么问题。 这里是控制器:

class Leads extends Controller {

function Leads() {
    parent::Controller();
    $this->load->scaffolding('leads');
  }

function index() {
    $data = array( 'title' => 'Lead Management' );

    $this->load->view('html_head', $data);
    $this->load->view('leads/home');
    $this->load->view('html_foot');

  }

function view() {
    $this->load->model('Leads');
    $this->load->view('html_head');
    $this->load->view('leads/view');
    $this->load->view('html_foot');
  }

}

这里是模型:

class Leads extends Model {

function Leads()    {
    parent::Model();
}

}

我没有在/ view上看到白页的唯一方法是如果我注释掉模型的加载。 我完全不知道自己做错了什么,我直接从CI站点复制实例和结构。


这两个类都被命名为“Leads”。 当CI包含这些时,它们将被加载到相同的名称空间中。 你可能有一个"Cannot redeclare class 'Leads'"错误。 尝试重命名模型,你应该没问题。

编辑:猜测确认


啊,经典的Codeigniter死亡白屏。 我第一次遇到CI时遇到了这个问题。 令人难以置信的令人沮丧的是,这样一个流行的框架可能会导致类似这样的错误输出。

在我的情况下,这是因为我试图在MySQLi中使用Database类,但是我的目标环境没有安装MySQLi模块。 出于某种原因,CI抑制了所有常见的错误输出,因此它将2分钟的调查变成了2小时的调查。

所以说,我会检查以下几点:

  • error_reporting设置为您的php.ini中的E_ALL ,并且display_errors已打开。
  • 打开log_errors。
  • 检查您使用的类不依赖于您可能没有的特殊PHP模块
  • 如果你找不到任何错误输出,你将不得不深入挖掘。 如果你安装了xdebug,我会强烈建议使用它......将你的代码包裹在一个跟踪中,看看它在哪里窒息。

    我最终不得不通过深入了解框架类本身和转储输出来找到WSOD的原因(没有提供xdebug)。 这并不好玩,但它最终奏效了。


    正如Cassy猜测的那样,这是您的命名问题 - CI无法处理具有相同名称的模型和控制器。 重命名你Leads模型到别的东西,并尝试重新加载页面。 这应该解决问题。

    链接地址: http://www.djcxy.com/p/69197.html

    上一篇: Why does Code Igniter give me a white page?

    下一篇: Ionic2 iOS white screen of death