为什么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小时的调查。
所以说,我会检查以下几点:
E_ALL
,并且display_errors已打开。 如果你找不到任何错误输出,你将不得不深入挖掘。 如果你安装了xdebug,我会强烈建议使用它......将你的代码包裹在一个跟踪中,看看它在哪里窒息。
我最终不得不通过深入了解框架类本身和转储输出来找到WSOD的原因(没有提供xdebug)。 这并不好玩,但它最终奏效了。
正如Cassy猜测的那样,这是您的命名问题 - CI无法处理具有相同名称的模型和控制器。 重命名你Leads
模型到别的东西,并尝试重新加载页面。 这应该解决问题。