hasMany(Image::class, 'gallery_id', 'id')->orderBy('sort')->orderByDesc('id'); } public function registerMediaConversions(Media $media = null): void { $this->addMediaConversion('gallery-image')->optimize(); $t = imageSizeConvertValidate('gallery_thumb'); $mc = $this->addMediaConversion('gthumb')->width($t[0]) ->height($t[1]) ->nonQueued() ->crop( $t[0], $t[1]) ->optimize() ->format(getSetting('optimize')); if (getSetting('watermark')){ $mc->watermark(public_path('upload/images/logo.png'), AlignPosition::BottomLeft,5,5,Unit::Percent, 15,Unit::Percent,15,Unit::Percent,Fit::Contain,50); } // ->withResponsiveImages(); } public function getRouteKeyName() { return 'slug'; } public function imgUrl() { if ($this->getMedia()->count() > 0) { return $this->getMedia()->first()->getUrl('gthumb'); } else { return asset('assets/upload/logo.svg'); } } public function author() { return $this->belongsTo(\App\Models\User::class); } public function attachs(){ return $this->morphMany(Attachment::class,'attachable'); } }