Dims
Dims

Reputation: 163

Codeigniter calling model method from another model causes error

I have a controller:

class Blah extends Controller
{
     function Blah()
      {
        $this->load->model('baga_model');
      }
}

then comes baga_model:

 class Baga_model extends Model
    {
      function do_it()
       {
         echo "BOOM!";
       }
    }

..and

class Blah_model extends Model
        {
          function some_action()
           {
             $this->baga_model->do_it();
           }
        }

So .. when in blah_model I call $this->baga_model->do_it() I get an error : Call to a member function do_it() on a non-object

I just can't understand why.... I know it must work, I did something similar before.. Thanks

Upvotes: 0

Views: 1439

Answers (2)

Dims
Dims

Reputation: 163

Got it! I had to load baga_model in blah_model constructor. This way it works.

Thanks everyone.

Upvotes: 1

Ghostman
Ghostman

Reputation: 6114

public function test()
    {
        $this->load->model('baga_model');
        $this->baga_model->do_it();
    }

Model

class baga_model extends CI_Model
{
    public function do_it()
   {
     echo $this->bar("BOOM!");
   }

Your not loading your required model inside your model:

 class Blah_model extends CI_Model
    {
$this->baga_model = $this->load->model('baga_model', true);
        public function some_action()
       {
         $this->baga_model->do_it();
       }
    }

Upvotes: 0

Related Questions