创建Doctrine行为:如何从侦听器对象中访问actAs()参数

时间:2010-09-10 18:28:03

标签: doctrine listener doctrine-1.2

我正在创建一个行为(一个模板和一个监听器)。在模板类中,我使用addListener()方法将侦听器附加到模型。

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

相当标准的东西,似乎。

从侦听器中,如何访问使用模型的actAs()方法设置的模板选项?你知道,自动占用模板对象的_options属性的那些。

1 个答案:

答案 0 :(得分:1)

您的模板类应具有protected $_options = array()属性。

将此属性传递给您的侦听器,如下所示:

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

在您的监听器课程中,您还应该拥有protected $_options属性。

将此添加到您的侦听器:

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

您现在应该可以从侦听器类中访问这些选项(来自preSave调用中的e.x)。