Brendan
Brendan

Reputation: 41

How to reference the instantiating class

Currently I have my controller instantiating a model class. Every time I create this class I need to set the logged in user's info in the model. I feel like there is a more elegant way of doing this, but I'm not sure how to do it :-(

Here is an example of the code:

$leadModel = new Application_Model_DbTable_Leads;
$leadModel->user = $this->user;

What I would like to do from inside the model I'm creating is access the user using something like this (I know this only applies to classes that are extending other classes):

$user_id = $this::parent->user;

Thanks so much!

Upvotes: 0

Views: 68

Answers (1)

Sjoerd
Sjoerd

Reputation: 75619

This is usually done using a constructor parameter:

class Application_Model_DbTable_Leads {
    public function __construct($user) {
        $this->user = $user;
    }
}

...

$a = new Application_Model_DbTable_Leads($user);

There is no way to get a reference to the instantiating class.

Upvotes: 2

Related Questions