控制器在另一个控制器内部调用,之后DB调用将不起作用-Codeigniter


Controller called inside another controller, after that DB calls wont work - Codeigniter

我有一个控制器,它调用另一个控制器。在那之后,发生了一个DB调用,现在当我运行DB调用时,它不起作用,我得到的错误是

<p>Message:  Undefined property: Advertisement::$admodelobj</p>
<p>Filename: v1/Advertisement.php</p>

这就是我的控制器的外观

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Advertisement extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
    }
    public function getads()
    {   
          //another controller call
          require_once 'application/controllers/v1/ip2locale.php';
            $GetLocale = new ip2locale();
            $range = $GetLocale->index($clientip);
            //now the db call
           $this->load->model('ads_model','admodelobj');            
$campaigns = $this->admodelobj->getCampaigns('desktop',1.00,'IN');
        }
}

现在,如果我只是把db调用放在"另一个控制器调用"之上,它工作得很好,但就在"又一个控制器呼叫"之后,它给了我错误,这可能是什么问题?

修复了它,必须再次加载控制器以避免混淆,然后它开始工作:)

$ci =& get_instance();          
            $ci->load->model('ads_model','admodelobj');         
            $campaigns = $ci->admodelobj->getCampaigns($deviceTypeValue,$payout,$locale);

伟大的Brij Raj Singh。。。告诉我,我有一种方法:

public function getads(){   
   $this->load->library('../controllers/ip2locale');
   $range = $this->ip2locale->index($clientip);
   .....
}

它可以工作:)