Загрузка и использование модели codeigniter от другой модели - PullRequest
10 голосов
/ 07 января 2011

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

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

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

строка 1 работает.в строке 2 происходит следующее:

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

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

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

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

Ответы [ 4 ]

14 голосов
/ 07 января 2011

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

class User_model extends Model
{
    function get_something()
    {
         $CI =& get_instance();
         $CI->load->model('profile_model');
         return $CI->profile_model->get_another_thing();
    }
}
6 голосов
/ 14 июля 2011

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

0 голосов
/ 28 августа 2014

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

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

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

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

0 голосов
/ 07 января 2011

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

$this->load->model('decision_model');
$CI =& get_instance();
$CI->decision_model->hello_decision(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...