0

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

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

看起来很标准的东西。

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

4

1 回答 1

1

你的模板类应该有一个protected $_options = array()属性。

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

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

在您的侦听器类中,您还应该有一个protected $_options属性。

将此添加到您的侦听器:

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

您现在应该能够从侦听器类中访问选项(例如从preSave调用中)。

于 2010-11-30T18:36:29.180 回答