Расширяет модель в CodeIgniter

Ну, я новичок в CodeIgniter Framework, и я пытаюсь создать общий модельный класс. Видеть:

class Basic_Model extends CI_MODEL { function __construct() { // Call the Model constructor parent::__construct(); } } 

Я хочу расширить все модели на основе Basic_Model, например:

 class Pagina_Model extends Basic_Model { function __construct() { // Call the Model constructor parent::__construct(); } } 

Проблема в том, что когда я пытаюсь вызывать «pagina_model» из контроллера a, возникает следующая ошибка:

 Fatal error: Class 'Basic_Model' not found in /var/www/myproject/application/models/pagina_model.php on line 12 

Если я использую «basic_model» в контроллере, все работает нормально.

ИЗМЕНИТЬ 1:

Я создал файл с именем MY_Basic_Model.php в «/ application / core» и изменил имя класса на «MY_Basic_Model». Но я получил ошибку:

 Fatal error: Class 'MY_Basic_Model' not found in /var/www/myproject/application/models/pagina_model.php on line 12 

Solutions Collecting From Web of "Расширяет модель в CodeIgniter"

Для этого вам нужно создать Core System Classes (это также известно как переопределение метода ).

Создайте файл MY_Model.php в MY_Model.php application/core/ который расширит базовый класс CI_Model :

 <?php class MY_Model extends CI_Model { function __construct() { parent::__construct(); } } 

Теперь вы можете расширить это в своих моделях (../applicaton/models/) :

 <?php class Pagina_Model extends MY_Model { function __construct() { parent::__construct(); } } 

Здесь мало что нужно отметить:
1) Объявление класса должно расширять родительский класс.
2) Ваше новое имя класса и имя файла должны иметь префикс MY_ (этот элемент настраивается).

Как настроить:
Чтобы настроить собственный префикс под-класса, откройте файл application / config / config.php и найдите этот элемент:

 $config['subclass_prefix'] = 'MY_'; 

Документация:
https://ellislab.com/codeigniter/user-guide/general/core_classes.html

Вы можете сделать это таким образом.
предположим, что у вас есть basic_model.php внутри вашей папки модели. Теперь добавьте код для class Basic_Model который вы написали

 class Basic_Model extends CI_MODEL { function __construct() { // Call the Model constructor parent::__construct(); } } 

Теперь сделайте pagina_model.php внутри вашей папки с образцом и добавьте код, который вы написали. Просто включите первую строку, например, ниже

 <?php require APPPATH.'/models/basic_model.php';//just add this line and keep rest class Pagina_Model extends Basic_Model { function __construct() { parent::__construct(); } } 

надеюсь, что это решит вашу проблему

Вы можете сделать это … Модель MY_ действительно хороша, но если вы хотите, чтобы вспомогательная модель расширила другую подмодуальную модель, которую вы всегда можете сделать:

 require(APPPATH.'models/Other_model.php'); class New_model extends Other_Model { 

В моем случае Other_Model фактически расширяет MY_model.