事件关系不起作用

时间:2017-01-19 04:41:41

标签: yii2

我的模型名为Events,具有以下结构。

class Events extends \yii\db\ActiveRecord
{
    const EVENT_SEND_EMAIL_TO_CREATER = 'send-email-to-creater-of-event';

    public function init()
    {
        $this->on(self::EVENT_SEND_EMAIL_TO_CREATER, [$this, 'sendEmailToCreaterOfEvent']);
    }
    .....


    public function getParents()
    {
        return $this->hasOne(Parents::className(), ['ID' => 'CreatedByUserID'])->select([ 'ID', 'Name' ]);
    }

    public function sendEmailToCreaterOfEvent($event)
    {
        echo '<pre>'; print_r($event->parents); exit;
    }
}

只要父母创建新的事件,就会触发上述事件。但它给出了以下错误:

  

获取未知属性:yii \ base \ Event :: parents

关系在活动中不起作用吗?请建议。

1 个答案:

答案 0 :(得分:2)

$event是指被触发的\yii\base\Event实例,而不是您的有效记录Events。要访问触发事件的对象,您可以使用Event::sender

echo '<pre>'; print_r($event->sender->parents); exit;

或者,由于事件处理程序与对象位于同一个类中,因此您可以使用$this

echo '<pre>'; print_r($this->parents); exit;