/** * Проверяет подписку авторизованного пользователя на событие * @return $this */ public function checkSubscribe() { if (\Yii::$app->user->isGuest) { return $this; } $onCondition = 'event_subscriber.event_id = event.id and event_subscriber.user_id = :user_id'; $onParams = ['user_id' => \Yii::$app->user->identity->id]; $this->select('event.*, event_subscriber.user_id AS subscribe'); $this->leftJoin(EventSubscriber::tableName(), $onCondition, $onParams); return $this; }
/** * @return EventQuery */ public function getSubscribers() { return $this->hasMany(User::className(), ['id' => 'user_id'])->viaTable(EventSubscriber::tableName(), ['event_id' => 'id']); }