Intereting Posts
Издевательствование пользователя в CakePHP Как я могу рандомизировать массив на PHP, предоставив семя и получив тот же порядок? Как подключиться к различным базам данных во время выполнения? PHP заменяет текст изображением Сохранять разрыв строки из Textarea Правильный способ сделать динамическую навигацию в Laravel 5 Вручную обновлять файлы проекта на локальном сервере? (Netbeans) Используйте сеанс входа в Facebook на другой странице Как преобразовать кодовые страницы Unicode в шестнадцатеричные HTML-объекты? Добавить class = "active" на активную страницу с помощью PHP Keep & nbsp; и другие специальные символы в выходе XSLT с применением шаблонов Symfony2 Custom Field Type (Тип поля) для заполнения с помощью значений Вопросительный знак на имя файла с помощью fopen php form – отправить заявку на ту же страницу Как я могу выбрать конкретные столбцы с createQueryBuilder в ORM Symfony2?

Codeigniter Extend custom model производит FATAL ERROR

Я видел несколько разных постов, но никто из них, похоже, не работает для меня.

У меня есть один класс, который расширяет CI_Model:

class Users_Model extends CI_Model { public function __construct(){ parent::__construct(); } 

а потом:

 class Students_Model extends Users_Model { private $_students; public function __construct(){ parent::__construct(); $this->_students = $this->get_students(); } 

Однако я получаю следующее сообщение об ошибке:

 PHP Fatal error: Class 'Users_Model' not found in /Users/rosswilson/Localhost/thedrumrooms/dreamweaver/ci/application/models/students_model.php 

Я использовал require_once для включения файла в расширенный класс, и он работает. Это лучшая практика / правильный способ сделать это?

Благодарю.

Related of "Codeigniter Extend custom model производит FATAL ERROR"

Стандартная практика в CI заключается в создании базовой модели внутри application/core именем MY_Model.php , MY_ зависит от того, что определено в вашей конфигурации.

Затем внутри вашего MY_Model.php вас может быть много классов, определенных в этом файле, которые вы можете расширить в своей модели, в основном, модель загрузки CodeIgniter ищет определенные классы по этому пути и файлу.

Но если вы хотите использовать require_once вы должны использовать APPPATH (путь приложения), как определено в index.php . Но вашей пользовательской модели все равно придется расширять CI_Model поскольку он использует основной класс для модели CI, или ваша модель не будет работать.

ex require_once APPPATH.'/models/test.php';

ДОБАВЛЕННЫЕ ПРИМЕЧАНИЯ:

спасибо @dean Или за указание на это. Внутри файла MY_Model.php должен быть MY_Model class который расширяет CI_Model .

вы убедились, что Users_model загружен до загрузки Students_model? вы можете сделать это в файле конфигурации autoload.php.

Поместите файл users_model.php в основной каталог. Затем попробуйте наследовать Users_Model в Students_Model.