Моя система Codeigniter использует несколько баз данных. Мне не нужна каждая база данных на каждой странице, поэтому я загружаю каждое соединение в модель там, где оно необходимо, а затем загружаю необходимые модели в каждый контроллер. Профилировщик не отображает запросы из этих баз данных, когда я загружаю вещи таким образом.
Вот как я загружаю базы данных в свои модели:
$this->Companies_db = $this->load->database( 'companies', TRUE, TRUE );
Раньше я загружал все свои базы данных в МОЙ _контроллер ()(. расширение основного контроллера ). Когда я загружаю их туда, профилировщик работает нормально. Когда я загружаю их в свои модели, он не отображает запросы к базе данных.
Запросы к базе данных компилируются в методе _compile_queries()
в рамках system/libraries/Profiler.php
. Когда мои базы данных загружаются в модель, их объекты не загружаются в объект CI. Приведенный ниже код — это первые несколько строк метода _compile_queries()
, именно здесь это и происходит.
foreach (get_object_vars($this->CI) as $CI_object)
{
if (is_object($CI_object) && is_subclass_of(get_class($CI_object), 'CI_DB') )
{
$dbs[] = $CI_object;
}
}
Как заставить профилировщик CI отображать мои запросы, когда я загружаю свои базы данных в свои модели? Или, точнее, как заставить объекты моей базы данных загружаться в основной объект CI, когда базы данных загружаются в модели.