TimestampBehavior::className(), 'createdAtAttribute' => 'created', 'updatedAtAttribute' => 'modified', 'value' => new Expression('NOW()'), ], ]; } /** * Path to stored image * * @return string */ public function getPath(): string { /** * @var ImageManagerGetPath $manager */ $manager = \Yii::$app->get('imagemanager'); $path = $manager->mediaPath . '/' . $this->id . '_' . $this->fileHash . '.' . $this->extension; if (file_exists($path)) { return $path; } else { return \Yii::getAlias('@frontend/web/img/no-image.png'); } } /** * Url to stored image * * @return string */ public function getUrl(): string { return '/storage/' . $this->id . '_' . $this->fileHash . '.' . $this->extension; } /** * Gets image tag * * @param array $options * * @return string */ public function getImg(array $options = []): string { return Html::img($this->getUrl(), $options); } /** * Gets file extension * * @return string */ public function getExtension() { return pathinfo($this->fileName, PATHINFO_EXTENSION); } /** * Multy language model with image's alt, title and description * * @return null|ActiveQuery */ public function getLang() { return $this->hasOne(ImageLang::className(), [ 'image_id' => 'id' ]) ->inverseOf('image'); } }