<?php namespace common\models; use common\classes\Debug; use Yii; use yii\helpers\ArrayHelper; /** * This is the model class for table "accesses". * * @property int $id * @property string $name * @property string $login * @property string $password * @property string $link * @property string $project * @property string $info */ class Accesses extends \yii\db\ActiveRecord { public $_projects; public $_users; /** * {@inheritdoc} */ public static function tableName() { return 'accesses'; } /** * {@inheritdoc} */ public function rules() { return [ [['name', 'login', 'password', 'link', 'project' ], 'string', 'max' => 255], [['info'], 'string'], [['_projects'], 'safe'], [['_users'], 'safe'], [['name', 'login', 'password', 'project'], 'required'], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'name' => 'Название', 'login' => 'Логин', 'password' => 'Пароль', 'link' => 'Ссылка', 'project' => 'Проект', 'info' => 'Дополнительная информация', ]; } 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'); } }