tags:

views:

31

answers:

1

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!

+2  A: 

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.

Sjoerd
It's possible to lookup an object reference with the http://us2.php.net/debug_backtrace function, but you definitely shouldn't be doing it that way
Sean Huber