/** * Кол-во проектов в которых присутствует пользователь * @return int */ public function getCountProjects() { return $this->hasMany(Project::className(), ['id' => 'project_id'])->viaTable(\app\models\node\ProjectPositionUser::tableName(), ['user_id' => 'id'])->count(); }
/** * @return $this */ public function getNode() { return $this->hasMany(ProjectPositionUser::className(), ['project_id' => 'id'])->joinWith(['user', 'position'])->select(['project_id', 'position_id', 'user_id'])->asArray(); }
/** * Удалить узел * @param $position_id * @param $user_id * @return false|int * @throws \Exception */ private function deleteNode($position_id, $user_id) { $nodeModel = ProjectPositionUser::find()->where('project_id=:project_id AND position_id=:position_id AND user_id=:user_id', ['project_id' => $this->id, 'position_id' => $position_id, 'user_id' => $user_id])->one(); return $nodeModel->delete(); }