[ 'class' => LanguageBehavior::className(), ], ]; } /** * @inheritdoc */ public function rules() { return [ [ [ 'techSpecFile', 'techCharFile', ], 'file', 'extensions' => 'txt, pdf, xls, xlsx', ], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'product_spec_id' => 'Product Spec ID', 'product_id' => 'Product ID', 'tech_spec_link' => 'Tech Spec Link', 'tech_char_link' => 'Tech Char Link', 'techSpecFile' => 'techSpecFile', 'techCharFile' => '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; } } }