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

时间:2013-09-05 07:03:25

标签: php codeigniter

我有一个控制器,它调用另一个控制器,然后发生数据库调用,现在当我运行数据库调用它没有工作时,我得到的错误是

<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');
        }
}

现在,如果我只是将数据库调用放在&#34;另一个控制器调用&#34;它运作良好,但是在另一个控制器调用之后#34;它给了我错误,可能是什么问题?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

伟大的Brij Raj Singh ......告诉我,我有一个方法:

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

   .....
}

它会起作用:)