255], [['_projects'], 'safe'], [['_users'], 'safe'], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'name' => 'Название', 'access' => 'Доступ', ]; } public function getUserCardAccesses() { return $this->hasMany(UserCardAccesses::className(), ['accesses_id' => 'id']); } public function getUserCard() { return $this->hasMany(UserCard::className(), ['id' => 'user_card_id']) ->via('userCardAccesses'); } public function getUserCardName() { return implode(', ', ArrayHelper::getColumn($this->userCard, 'fio')); } public function getProjectName() { return implode(', ', ArrayHelper::getColumn($this->projects, 'name')); } public function afterFind() { parent::afterFind(); // TODO: Change the autogenerated stub $this->_projects = ArrayHelper::getColumn($this->projectAccesses, 'project_id'); $this->_users = ArrayHelper::getColumn($this->userCardAccesses, 'user_card_id'); } public function afterSave($insert, $changedAttributes) { parent::afterSave($insert, $changedAttributes); // TODO: Change the autogenerated stub ProjectAccesses::deleteAll(['accesses_id' => $this->id]); if ($this->_projects) { foreach ($this->_projects as $prj) { $m2 = new ProjectAccesses(); $m2->project_id = $prj; $m2->accesses_id = $this->id; $m2->save(); } } UserCardAccesses::deleteAll(['accesses_id' => $this->id]); if ($this->_users) { foreach ($this->_users as $us) { $m2 = new UserCardAccesses(); $m2->user_card_id = $us; $m2->accesses_id = $this->id; $m2->save(); } } } public function getProjectAccesses() { return $this->hasMany(ProjectAccesses::className(), ['accesses_id' => 'id']); } public function getProjects() { return $this->hasMany(Project::className(), ['id' => 'project_id']) ->via('projectAccesses'); } }