Эй, не знаю, почему 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-минутному расследованию двухчасового расследования.
Чтобы быть сказанным, я бы проверил следующие вещи:
E_ALL
в вашем php.ini, а display_errors E_ALL
. Если вы не можете найти что-либо с выходом ошибки, вам придется копать глубже. Если у вас установлен 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 часов поиска.