[ 'class' => LanguageBehavior::className(), ], ]; } /** * @inheritdoc */ public function rules() { return [ [ [ 'techSpecFile', 'techCharFile', ], 'file', 'extensions' => 'txt, pdf, xls, xlsx', ], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'product_spec_id' => Yii::t('app', 'product_spec_id'), 'product_id' => Yii::t('app', 'product_id'), 'tech_spec_link' => Yii::t('app', 'tech_spec_link'), 'tech_char_link' => Yii::t('app', 'tech_char_link'), 'techSpecFile' => Yii::t('app', 'techSpecFile'), 'techCharFile' => Yii::t('app', 'techCharFile'), ]; } public function upload() { $storage = \Yii::getAlias('@storage'); $product_dir = $storage . '/product_spec/' . $this->product_id; if(!is_dir($product_dir)) { mkdir($product_dir); } if($this->validate()) { if(!empty( $this->techSpecFile )) { $path = $product_dir . '/' . $this->techSpecFile->baseName . '.' . $this->techSpecFile->extension; $this->tech_spec_link = $this->techSpecFile->baseName . '.' . $this->techSpecFile->extension; $this->techSpecFile->saveAs($path); } if(!empty( $this->techCharFile )) { $path = $product_dir . '/' . $this->techCharFile->baseName . '.' . $this->techCharFile->extension; $this->tech_char_link = $this->techCharFile->baseName . '.' . $this->techCharFile->extension; $this->techCharFile->saveAs($path); } return true; } else { return false; } } /** * @return \yii\db\ActiveQuery */ public function getProduct() { return $this->hasOne(Product::className(), [ 'product_id' => 'product_id' ]); } public function getTechSpecUrl() { if(!empty( $this->tech_spec_link )) { return '/storage/product_spec/' . $this->product_id . '/' . $this->tech_spec_link; } else { return false; } } public function getTechCharUrl() { if(!empty( $this->tech_char_link )) { return '/storage/product_spec/' . $this->product_id . '/' . $this->tech_char_link; } else { return false; } } }