BlameableBehavior::className(), 'createdByAttribute' => 'user_id', 'updatedByAttribute' => false, ], [ 'class' => TimestampBehavior::className(), 'createdAtAttribute' => 'date_add', 'updatedAtAttribute' => false, 'value' => new Expression('NOW()'), ], [ 'class' => 'common\behaviors\ShowImage', ], ]; } /** * @inheritdoc */ public function rules() { return [ [ [ 'name', 'preview', 'city', 'cover' ], 'required', ], [ [ 'gallery_id', ], 'integer', ], [ [ 'description', 'cover', ], 'string', ], [ [ 'name', 'link', 'city', 'street', 'house', ], 'string', 'max' => 255, ], [ [ 'preview', ], 'string', 'max' => 1000, ], [ [ 'specializationInput', ], 'safe', ], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'portfolio_id' => Yii::t('app', 'portfolio_id'), 'user_id' => Yii::t('app', 'user_id'), 'name' => Yii::t('app', 'name'), 'link' => Yii::t('app', 'link'), 'date_add' => Yii::t('app', 'date_add'), 'user_add_id' => Yii::t('app', 'user_add_id'), 'view_count' => Yii::t('app', 'view_count'), 'city' => Yii::t('app', 'city'), 'street' => Yii::t('app', 'street'), 'house' => Yii::t('app', 'house'), 'description' => Yii::t('app', 'description'), 'cover' => Yii::t('app', 'cover_m'), 'gallery_id' => Yii::t('app', 'gallery_id'), 'specializationString' => Yii::t('app', 'specializationString'), 'preview' => Yii::t('app', 'preview'), ]; } /** * @return \yii\db\ActiveQuery */ public function getPortfolioSpecializations() { return $this->hasMany(PortfolioSpecialization::className(), [ 'portfolio_id' => 'portfolio_id' ]); } public function getSpecializations() { return $this->hasMany(Specialization::className(), [ 'specialization_id' => 'specialization_id' ]) ->viaTable('portfolio_specialization', [ 'portfolio_id' => 'portfolio_id' ]); } public function getSpecializationInput() { return $this->getSpecializations() ->asArray() ->indexBy('specialization_id') ->column(); } public function setSpecializationInput($value) { $this->specializationInput = $value; } public function getSpecializationString() { return implode(', ', $this->getSpecializations() ->select([ 'specialization_name', 'specialization_id', ]) ->asArray() ->indexBy('specialization_id') ->column()); } public function setSpecializationString($value) { $this->specializationString = $value; } public function getGallery() { return $this->hasOne(Gallery::className(), [ 'gallery_id' => 'gallery_id' ]); } }