$fileTag * @property-read int|null $file_tag_count * @property-read Collection $tags * @property-read int|null $tags_count * @method static \Illuminate\Database\Eloquent\Builder|DcFile newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|DcFile newQuery() * @method static \Illuminate\Database\Eloquent\Builder|DcFile query() * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereActive($value) * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereExt($value) * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereFilename($value) * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereMine($value) * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereOriginalName($value) * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereSize($value) * @method static \Illuminate\Database\Eloquent\Builder|DcFile whereUpdatedAt($value) * @mixin \Eloquent */ class DcFile extends Model { protected $table = 'dc_files'; protected $casts = [ 'size' => 'int', 'active' => 'int' ]; protected $fillable = [ 'filename', 'original_name', 'ext', 'mine', 'size', 'active' ]; public function dc_file_tags() { return $this->hasMany(DcFileTag::class, 'file_id'); } public function tags(){ return $this->belongsToMany(DcTag::class, 'dc_file_tags', 'file_id', 'tag_id'); } public function fileTag(){ return $this->hasMany(DcFileTag::class, 'file_id'); } public function hasTags() { if($this->fileTag()->count()){ return true; } return false; } //path /storage/app/dc/ ... /*public function isImage(){ if(empty($this->attributes['filename']) || @$this->attributes['filename'] == null || @$this->attributes['filename'] == ""){ return false; } if(!\Storage::disk('public')->has('images/shop/'.$this->filename)){ return false; } return true; } public function getImage(){ if($this->isImage()){ $link = 'images/shop/'.$this->filename; return '/storage/'.$link.'?=lm='.\Storage::disk('public')->lastModified($link); } return false; }*/ public function hasThumb(){ if(\Storage::disk('public')->exists('dc/thumb/'.$this->filename) || \Storage::disk('public')->exists('dc/thumb/'.$this->filename.".jpg")){ return true; } return false; } public function hasBig(){ if(\Storage::disk('public')->exists('dc/big/'.$this->filename) || \Storage::disk('public')->exists('dc/big/'.$this->filename.".jpg")){ return true; } return false; } public function hasFile(){ if(\Storage::disk('public')->exists('dc/files/'.$this->filename) || \Storage::disk('public')->exists('dc/files/'.$this->filename.".jpg")){ return true; } return false; } public function getThumb($full = false){ $link = 'dc/thumb/'.$this->filename; if(\Storage::disk('public')->exists($link)){ return $full ? \Storage::disk('public')->path($link) : $link; } $link.=".jpg"; if(\Storage::disk('public')->exists($link)){ return $full ? \Storage::disk('public')->path($link) : $link; } return false; } public function getBig($full = false){ $link = 'dc/big/'.$this->filename; if(\Storage::disk('public')->exists($link)){ return $full ? \Storage::disk('public')->path($link) : $link; } $link.=".jpg"; if(\Storage::disk('public')->exists($link)){ return $full ? \Storage::disk('public')->path($link) : $link; } return false; } public function getFile($full = false){ $link = 'dc/files/'.$this->filename; if(\Storage::disk('public')->exists($link)){ return $full ? \Storage::disk('public')->path($link) : $link; } $link.=".jpg"; if(\Storage::disk('public')->exists($link)){ return $full ? \Storage::disk('public')->path($link) : $link; } return false; } public function getLastModified($type = 'thumb'){ if($type == 'thumb'){ $link = $this->getThumb(); } if($type == 'big'){ $link = $this->getBig(); } if($type == 'file'){ $link = $this->getFile(); } return \Storage::disk('public')->lastModified($link); } public function getTags(){ $tags = $this->tags; $tagArray = []; foreach($tags as $tag){ $tagArray[] = $tag->name; } return implode(', ', $tagArray); } public function thumb(){ $ext = $this->ext; $ext = strtolower($ext); if($ext == 'pdf'){ return 'pdf.png'; } if($ext == 'doc' || $ext == 'docx'){ return 'doc.png'; } if($ext == 'xls' || $ext == 'xlsx'){ return 'xls.png'; } if($ext == 'ppt' || $ext == 'pptx'){ return 'ppt.png'; } if($ext == 'zip' || $ext == 'rar'){ return 'zip.png'; } if($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png' || $ext == 'gif'){ return $this->filename; } return 'file.png'; } }