duan1979768678 2016-08-09 04:49
浏览 57
已采纳

致命错误:在非对象Codeigniter上调用成员函数base_url()

Fatal error: Call to a member function base_url() on a non-object

I am getting the above error when I redirect to the site from payment gateway, hence the head file containing all the scripts does not get loaded

I tried using $ci =& get_instance(); But still its giving the same issue

public function payment_success() { 
    $this->load->model("bidding_m"); 
    $this->load->model("admin_setting_m"); 
    $this->load->model("channel_partners_m"); //call model functions to update the tables 
    $this->load->config('payu_config', TRUE); 
    $this->config = $this->config->item('payu_config'); 
    //echo base_url();
    exit;
}
  • 写回答

2条回答 默认 最新

  • doujia7779 2016-08-09 08:31
    关注

    Your problem is this line:

    $this->config = $this->config->item('payu_config');
    

    I don't know if this code is in library / controller so I tried explain it for both:

    Controller:

    You rewrite whole config ($this->config = ...) with a single config item and your base_url config item is lost! So do it this way:

    $config = $this->config->item('payu_config');
    

    Library:

    You are accessing config item, but don't have instance of codeigniter. If this code is in library, it should looks like this:

    public function payment_success() { 
        $ci = & get_instance();
        $ci->load->model("bidding_m"); 
        $ci->load->model("admin_setting_m"); 
        $ci->load->model("channel_partners_m"); 
        $ci->load->config('payu_config', TRUE); 
        //if you have in this library variable $config
        $this->config = $ci->config->item('payu_config'); 
        echo base_url();
        exit;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?