/** * Пользователи, на которых я подписан * @return ActiveQuery */ public function getSigned() { return $this->hasMany(UserSubscriber::className(), ['subscriber_id' => 'id']); }
public function actionSubscribe($user_id) { /** * @var $userAuth User */ $userAuth = \Yii::$app->user->identity; if ($userAuth->id == $user_id || !\Yii::$app->request->isAjax) { throw new NotFoundHttpException(); } $error = false; \Yii::$app->response->format = Response::FORMAT_JSON; $subscribeLink = UserSubscriber::find()->where(['user_id' => $user_id, 'subscriber_id' => $userAuth->id])->one(); if ($subscribeLink) { $subscribeLink->delete(); } else { $subscribeLink = new UserSubscriber(); $subscribeLink->user_id = $user_id; $subscribeLink->subscriber_id = $userAuth->id; $error = !$subscribeLink->save(); } return ['error' => $error, 'message' => $subscribeLink->getErrors()]; }