Guest User

banner model

a guest
Jan 21st, 2021
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.97 KB | None | 0 0
  1. banner model
  2. <?php
  3.  
  4. namespace App\Models;
  5.  
  6. use Illuminate\Database\Eloquent\Factories\HasFactory;
  7. use Illuminate\Database\Eloquent\Model;
  8. use Illuminate\Database\Eloquent\SoftDeletes;
  9. use Spatie\MediaLibrary\HasMedia;
  10. use Spatie\MediaLibrary\InteractsWithMedia;
  11. use Spatie\MediaLibrary\MediaCollections\Models\Media;
  12. use \DateTimeInterface;
  13.  
  14. class Banner extends Model implements HasMedia
  15. {
  16.     use SoftDeletes, InteractsWithMedia, HasFactory;
  17.  
  18.     public $table = 'banners';
  19.  
  20.     protected $appends = [
  21.         'banner_img',
  22.     ];
  23.  
  24.     protected $dates = [
  25.         'created_at',
  26.         'updated_at',
  27.         'deleted_at',
  28.     ];
  29.  
  30.     protected $fillable = [
  31.         'banner_name',
  32.         'banner_header',
  33.         'banner_caption',
  34.         'banner_btn_txt',
  35.         'banner_btn_link',
  36.         'banner_btn_color',
  37.         'banner_type_id',
  38.         'created_at',
  39.         'updated_at',
  40.         'deleted_at',
  41.     ];
  42.  
  43.     protected function serializeDate(DateTimeInterface $date)
  44.     {
  45.         return $date->format('Y-m-d H:i:s');
  46.     }
  47.  
  48.     public function registerMediaConversions(Media $media = null): void
  49.     {
  50.         $this->addMediaConversion('thumb')->fit('crop', 50, 50);
  51.         $this->addMediaConversion('preview')->fit('crop', 120, 120);
  52.     }
  53.  
  54.     public function bannerPositions()
  55.     {
  56.         return $this->hasMany(Position::class, 'banner_id', 'id');
  57.     }
  58.  
  59.     public function banner_type()
  60.     {
  61.         return $this->belongsTo(BannerType::class, 'banner_type_id');
  62.     }
  63.  
  64.     public function getBannerImgAttribute()
  65.     {
  66.         $file = $this->getMedia('banner_img')->last();
  67.  
  68.         if ($file) {
  69.             $file->url       = $file->getUrl();
  70.             $file->thumbnail = $file->getUrl('thumb');
  71.             $file->preview   = $file->getUrl('preview');
  72.         }
  73.  
  74.         return $file;
  75.     }
  76.  
  77.     public function scopeByType($query, $status)
  78.     {
  79.         return $query->where('banner_type_id', $status);
  80.     }
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment