我的模型名为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
关系在活动中不起作用吗?请建议。
答案 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;