2010-09-10 61 views
0

我正在創建一個行爲(一個模板和一個偵聽器)。在模板類中,我使用addListener()方法將偵聽器附加到模型。創建一個Doctrine行爲:如何從偵聽器對象中訪問actAs()params

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

看起來很標準的東西。

從監聽器中,如何訪問已使用模型的actAs()方法設置的模板選項?你知道,那些會自動佔據模板對象的_options屬性的屬性。

回答

1

你的模板類應該有一個protected $_options = array()屬性。

通過這個屬性到您的收聽,像這樣:

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

在監聽器類,你也應該有一個protected $_options財產。

添加到您的聽衆:

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

您現在應該能夠從(從preSave調用中e.x)訪問您的監聽器類中的選項。

相關問題