Почему 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. Невероятно разочаровывает то, что такая популярная структура может вызвать что-то вроде этого без вывода ошибок.

В моем конкретном случае это произошло потому, что я попытался использовать класс Database с MySQLi, но в моей целевой среде не установлен модуль MySQLi. По какой-то причине CI подавил весь обычный выход ошибки, поэтому он перешел к 2-минутному расследованию двухчасового расследования.

Чтобы быть сказанным, я бы проверил следующие вещи:

  • error_reporting установлен на E_ALL в вашем php.ini, а display_errors E_ALL .
  • Включите log_errors .
  • Убедитесь, что классы, которые вы используете, не полагаются на специальный PHP-модуль, который у вас может не быть

Если вы не можете найти что-либо с выходом ошибки, вам придется копать глубже. Если у вас установлен xdebug , я настоятельно рекомендую использовать это … окружить ваш код в трассировке и посмотреть, где он задыхается.

В итоге мне пришлось найти причину моего WSOD, свернув сами классы каркасов и выгружая выходные данные (нет xdebug). Это не весело, но в итоге это сработало.

Как предположил Кэсси, это проблема с вашим наименованием – CI не может иметь дело с моделями и контроллерами с тем же именем. Переименуйте себя. Leads модель к чему-то еще и попробуйте перезагрузить страницу. Это должно решить проблему.

Я дифференцирую свои контроллеры и модели, добавляя имена _controller или _model в классы. Это устраняет путаницу классов. Попробуйте переименовать их, как
Leads_Controler и Leads_Model.

Еще одна причина для белого экрана смерти – включить кеширование запросов или log lutputtibg, при этом соответствующая папка не может быть записана. У меня есть несколько раз!

Просто решила ту же проблему после очень неприятной ночи, проведенной в библиотеках CI.

Как заметил Зомбат, моя проблема заключалась в том, что я забыл установить модуль php5-mysql в своем Linux-окне.

После того как apt-get установил модуль mysql, все началось, как и ожидалось.

Нооб, я знаю. Но я бы ожидал лучшего поведения со стороны CI при обработке подобных исключений. Одна строка журнала спасла бы кучу часов и проклятий.

У меня была белая пустая страница после использования моей первой модели. Решение – если вы используете Codeigniter 2+, вам нужно перейти от CI_Model вместо Model. поэтому класс модели должен сказать, что class myModel extends CI_Model . Это помогло мне после 4 часов поиска.