开发者

Creating a Doctrine behavior: How to access actAs() params from within a listener object

开发者 https://www.devze.com 2023-01-15 10:30 出处:网络
I\'m creating a behavior (one template and one listener). In the template class, I\'m using the addListener() method to attach the listener to the model.

I'm creating a behavior (one template and one listener). In the template class, I'm using the addListener() method to attach the listener to the model.

// Inside the template's setTableDefinition() method
$this->addListener(new RemoraSaveListener);

Pretty standard stuff, it seems.

From within the listener, how to I access the template options that have been set using the model's actAs() method? You know, the ones that automatically occupy the _options property开发者_开发百科 of the template object.


Your template class should have a protected $_options = array() property.

Pass this property to your listener, like so:

$this->addListener(new RemoraSaveListener($this->_options));

In your listener class you should also have a protected $_options property.

Add this to your listener:

public function __construct($options) {
    $this->_options = $options;
}

You should now be able to access the options from within your listener class (e.x from within a preSave call).

0

精彩评论

暂无评论...
验证码 换一张
取 消