PATH:
home
/
lab2454c
/
vaultchip.com
/
platform
/
core
/
media
/
src
/
Models
<?php namespace Botble\Media\Models; use Botble\Base\Models\BaseModel; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\SoftDeletes; use RvMedia; class MediaFile extends BaseModel { use SoftDeletes; /** * The database table used by the model. * * @var string */ protected $table = 'media_files'; /** * The date fields for the model.clear * * @var array */ protected $dates = [ 'created_at', 'updated_at', 'deleted_at', ]; /** * @var array */ protected $fillable = [ 'name', 'mime_type', 'type', 'size', 'url', 'options', 'folder_id', 'user_id', ]; /** * @var array */ protected $casts = [ 'options' => 'json', ]; protected static function boot() { parent::boot(); static::deleting(function (MediaFile $file) { if ($file->isForceDeleting()) { RvMedia::deleteFile($file); } }); } /** * @return BelongsTo */ public function folder(): BelongsTo { return $this->belongsTo(MediaFolder::class, 'id', 'folder_id'); } /** * @return string */ public function getTypeAttribute(): string { $type = 'document'; foreach (RvMedia::getConfig('mime_types', []) as $key => $value) { if (in_array($this->attributes['mime_type'], $value)) { $type = $key; break; } } return $type; } /** * @return string */ public function getHumanSizeAttribute(): string { return human_file_size($this->attributes['size']); } /** * @return string */ public function getIconAttribute(): string { switch ($this->type) { case 'image': $icon = 'far fa-file-image'; break; case 'video': $icon = 'far fa-file-video'; break; case 'pdf': $icon = 'far fa-file-pdf'; break; case 'excel': $icon = 'far fa-file-excel'; break; default: $icon = 'far fa-file-alt'; break; } return $icon; } /** * @return bool */ public function canGenerateThumbnails(): bool { return RvMedia::canGenerateThumbnails($this->mime_type); } }
[-] MediaFolder.php
[edit]
[+]
..
[-] MediaFile.php
[edit]
[-] MediaSetting.php
[edit]