Yii2 - 如何在事件中传递参数

时间:2016-08-30 13:29:40

标签: yii yii2

我需要在触发事件时传递其他参数。我怎么能这样做。

const EVENT_NEW_PORTAL = 'new-portal';

public function init(){

      $this->on(self::EVENT_NEW_PORTAL, [$this, $userID, 'defaultJournal']);
      $this->on(self::EVENT_NEW_PORTAL, [$this->idportal, $userID, 'defaultCategory']);

    }

    public function defaultJournal($portal, $userID)
    {
        CsJournal::insertDefaultJournal($portal, $userID);
    }

    public function defaultBoardCagetory($portalID, $userID)
    {
        BoardCategories::createDefaultCategory($portal, $userID);
    }

1 个答案:

答案 0 :(得分:2)

您应该阅读:Attaching Event Handlers

  

附加事件处理程序时,您可以提供其他数据作为yii\base\Component::on()的第三个参数。触发事件并调用处理程序时,数据将可供处理程序使用。

e.g。 :

public function defaultJournal($event)
{
    CsJournal::insertDefaultJournal($this, $event->data);
}

然后:

$this->on(self::EVENT_NEW_PORTAL, [$this, 'defaultJournal'], $userID);