PATH:
home
/
rwabteecom
/
project_11
/
app
/
Models
/
Editing: Domain.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Spatie\MediaLibrary\HasMedia; use Spatie\Translatable\HasTranslations; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Relations\HasMany; use Spatie\MediaLibrary\InteractsWithMedia; class Domain extends BaseModel implements HasMedia { use InteractsWithMedia; public function registerMediaCollections(): void { $this->addMediaCollection('logo')->singleFile(); $this->addMediaCollection('banner_image')->singleFile(); $this->addMediaCollection('background_image')->singleFile(); $this->addMediaCollection('qr_image')->singleFile(); $this->addMediaCollection('media_library'); } public function banner(): Attribute { return Attribute::get(function () { if ($this->hasMedia('banner_image')) { return $this->getFirstMediaUrl('banner_image'); } return false; }); } public function backgroundImg(): Attribute { return Attribute::get(function () { if ($this->hasMedia('background_image')) { return $this->getFirstMediaUrl('background_image'); } return false; }); } public function qrImg(): Attribute { return Attribute::get(function () { if ($this->hasMedia('qr_image')) { return $this->getFirstMediaUrl('qr_image'); } return false; }); } public function logo(): Attribute { return Attribute::get(function () { if ($this->hasMedia('logo')) { return '<img src="' . $this->getFirstMediaUrl('logo') . '" class="img-fluid" alt="profile">'; } return '<div class="domain-logo-container">' . strtoupper(mb_substr($this->owner->name, 0, 1)) . '</div>'; }); } public function mediaLibrary(): Attribute { return Attribute::get(function () { // if ($this->hasMedia('gallery')) { return $this->getMedia('media_library'); // }else{ // return \App\Core\Support\Settings::get("site_logo"); // } }); } public function socialIcons(): HasMany { return $this->hasMany(DomainSocial::class)->orderBy('order', 'asc'); } public function links(): HasMany { return $this->hasMany(Link::class)->orderBy('order', 'asc'); } public function owner() { return $this->hasOne(User::class, 'domain_id')->where('is_owner', 1); } public function currentTheme() { return $this->belongsTo(DomainTheme::class, 'domain_theme_id'); } }
SAVE
CANCEL