'int', 'customer_fewo_mail_id' => 'int', 'size' => 'int' ]; protected $dates = ['deleted_at']; protected $fillable = [ 'travel_user_id', 'customer_fewo_mail_id', 'identifier', 'filename', 'dir', 'original_name', 'ext', 'mine', 'size' ]; public static $icon_ext = [ 'default' => 'fa fa-file', 'pdf'=> 'fa fa-file-pdf', 'jpg'=> 'fa fa-file-image', 'png'=> 'fa fa-file-image', ]; public function customer_fewo_mail() { return $this->belongsTo(CustomerFewoMail::class); } public function travel_user() { return $this->belongsTo(TravelUser::class); } public function getIconExt(){ return isset(self::$icon_ext[$this->ext]) ? self::$icon_ext[$this->ext] : self::$icon_ext['default']; } public function getURL($do=false){ return route('storage_file', [$this->id, 'travel_user', $do]); } public function getPath(){ return \Storage::disk('travel_user')->path($this->dir.$this->filename); } public function formatBytes($precision = 2) { $size = $this->size; if ($size > 0) { $size = (int) $size; $base = log($size) / log(1024); $suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB'); return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)]; } else { return $size; } } }