MY_Model指定的数据库不能从MY_Controller工作



我正在研究一个多站点系统,该系统有一个"sitemanager"数据库,然后每个站点有一个数据库。

为了决定应该加载的站点数据库以及设置一些其他配置内容,我已经实现了MY_Controller,以便在我们到达任何主控制器之前从sitemanager数据库加载信息。

我已经设置了几个模型来使用sitemanager数据库,要做到这一点,我只需包含

public function __construct()
{       
    $this->_db_group = 'sitemanager';
    parent::__construct();
}

,然后在my database.php

中指定sitemanager Settings。

当我从标准控制器调用模型时,此方法工作正常,我已经设置了一个登录页面在sitemanager数据库中工作表,这工作正常,但是,当我尝试使用从MY_Controller内调用sitemanager数据库的模型时,它不起作用,错误信息我得到"表"翻译。域名"不存在",很明显,它试图加载我的默认数据库,而不是sitemanager的数据库。

谁能告诉我我做错了什么?为什么忽略sitemanager数据库的设置?

MY_Controller.php如下所示:

<?php
class MY_Controller extends CI_Controller {
function MY_Controller() {
    parent::__construct();
    $this->load->model('company_model');
    // Get domain and load info from database
    $domain_info = $this->domain_model->get_by(array('domain' => $_SERVER['HTTP_HOST']));
    // Company info
    $company_info = $this->company_model->get($domain_info->company_id);
    // Set global variables
    define('GLOBAL_COMPANY_ID',$company_info->id);
    define('GLOBAL_COMPANY_NAME',$company_info->name);
    }
}

领域模型如下:

class Domain_model extends MY_Model {
    public function __construct()
    {
        $this->_db_group = 'sitemanager';
        parent::__construct();
    }
}

谢谢:)

我修复了这个问题,以防其他人遇到同样的事情。

我将域模型加载移回MY_Controller,而不是自动加载它。直到我将域模型的负载移动到下的公司模型(公司模型使用默认数据库),这仍然不起作用,然后一切都工作正常。

最新更新