Загрузка и использование модели codeigniter из другой модели

коллеги-кодеры, используя codeigniter 1.7.3 могу ли я загрузить модель из кода другой модели? Я прочитал много теоретических и практических постов, но ни один не дал окончательного ответа.

У меня есть модель, которая имеет функцию, в которой я хотел бы выполнять операции на другую модель. код выглядит так:

1: $this->load->model('decision_model');
2: $this->decision_model->hello_decision();  

строка 1 работает. строка 2 не выполняется следующим образом:

обнаружена ошибка PHP
Серьезность: Обратите Внимание
Сообщение: неопределенное свойство: Account_model::$decision_model
Имя файла: models / account_model.в PHP

Я попытался создать простые тупые модели, изменил имена функций, дал модели псевдоним при загрузке и т. д... не повезло!--2-->

Итак, теория в сторону, это выполнимо?

спасибо заранее.

4 ответов


вы можете сделать это так:

class User_model extends Model
{
    function get_something()
    {
         $CI =& get_instance();
         $CI->load->model('profile_model');
         return $CI->profile_model->get_another_thing();
    }
}

в CI 2.0 вы можете просто вызвать одну модель непосредственно из другой.


попробуйте это:

$this->load->model('decision_model');
$CI =& get_instance();
$CI->decision_model->hello_decision(); 

вы также можете добавить private $_ci; переменной класса и инициализировать его в конструкторе.

public function __construct($input=null)
{
    $this->_ci =& get_instance();

    if ( $input != null && is_array($input) ) {
         $this->populate($input);
    }
}

тогда он будет доступен для любой функции, с которой вы работаете, не нужно get_instance() повсюду.