Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- banner model
- <?php
- namespace App\Models;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\SoftDeletes;
- use Spatie\MediaLibrary\HasMedia;
- use Spatie\MediaLibrary\InteractsWithMedia;
- use Spatie\MediaLibrary\MediaCollections\Models\Media;
- use \DateTimeInterface;
- class Banner extends Model implements HasMedia
- {
- use SoftDeletes, InteractsWithMedia, HasFactory;
- public $table = 'banners';
- protected $appends = [
- 'banner_img',
- ];
- protected $dates = [
- 'created_at',
- 'updated_at',
- 'deleted_at',
- ];
- protected $fillable = [
- 'banner_name',
- 'banner_header',
- 'banner_caption',
- 'banner_btn_txt',
- 'banner_btn_link',
- 'banner_btn_color',
- 'banner_type_id',
- 'created_at',
- 'updated_at',
- 'deleted_at',
- ];
- protected function serializeDate(DateTimeInterface $date)
- {
- return $date->format('Y-m-d H:i:s');
- }
- public function registerMediaConversions(Media $media = null): void
- {
- $this->addMediaConversion('thumb')->fit('crop', 50, 50);
- $this->addMediaConversion('preview')->fit('crop', 120, 120);
- }
- public function bannerPositions()
- {
- return $this->hasMany(Position::class, 'banner_id', 'id');
- }
- public function banner_type()
- {
- return $this->belongsTo(BannerType::class, 'banner_type_id');
- }
- public function getBannerImgAttribute()
- {
- $file = $this->getMedia('banner_img')->last();
- if ($file) {
- $file->url = $file->getUrl();
- $file->thumbnail = $file->getUrl('thumb');
- $file->preview = $file->getUrl('preview');
- }
- return $file;
- }
- public function scopeByType($query, $status)
- {
- return $query->where('banner_type_id', $status);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment