代码之家  ›  专栏  ›  技术社区  ›  mattalxndr

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

  •  0
  • mattalxndr  · 技术社区  · 15 年前

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

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

    看起来是很标准的东西。

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Steven Mercatante Dimitri Kopriwa    15 年前

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

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

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

    在你的聆听者课程中,你也应该有一个 protected $_options 财产。

    将此添加到侦听器:

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

    现在您应该能够从侦听器类(e.x)中访问选项 preSave 电话)。

    推荐文章