我需要在触发事件时传递其他参数。我怎么能这样做。
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);
}
答案 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);