255, ], [ [ 'file' ], 'file', 'extensions' => 'pdf', ], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'certificate_id' => 'Certificate ID', 'name' => 'Name', 'link' => 'Link', 'file' => 'Certificate File', ]; } public function beforeDelete() { if(parent::beforeDelete()) { $this->deleteFile(); return true; } else { return false; } } public function deleteFile() { $link = $this->getCertificateFile(); if(file_exists($link)) { unlink($link); } } public function upload() { if($this->validate()) { if(!empty($this->file)) { $certDir = \Yii::getAlias('@storage/certificates'); $this->file->saveAs($certDir . '/' . $this->file->baseName . '.' . $this->file->extension); $this->link = $this->file->baseName.'.'.$this->file->extension; } return true; } else { return false; } } public function getCertificateUrl() { if(!empty( $link = $this->link )) { return '/storage/certificates/' . $link; } else { return false; } } public function getCertificateFile() { if(!empty( $link = $this->link )) { $certDir = \Yii::getAlias('@storage/certificates'); return $certDir . '/' . $link; } else { return false; } } }