我有一个控制器,它调用另一个控制器,然后发生数据库调用,现在当我运行数据库调用它没有工作时,我得到的错误是
<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;它给了我错误,可能是什么问题?
答案 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);
.....
}
它会起作用:)