Search code examples
phpcodeigniterpayumoney

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


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

Solution

  • 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;
    }