<?php
namespace App\Models;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
use Illuminate\Database\Eloquent\Model;
use Spatie\Image\Manipulations;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
use Spatie\Sluggable\HasSlug;
use Spatie\Sluggable\SlugOptions;
class Posts extends Model implements HasMedia
{
use InteractsWithMedia;
use HasSlug;
public $table = 'posts';
public $fillable = [
'title',
'content',
'image_chaption',
'highlight',
'slug',
'post_category_id',
'user_id'
];
protected $casts = [
'title' => 'string',
'content' => 'string',
'image_chaption' => 'string',
'highlight' => 'boolean',
'slug' => 'string'
];
public static array $rules = [
'title' => 'required|string|max:65535',
'content' => 'required|string',
'image_chaption' => 'nullable|string|max:45',
'highlight' => 'nullable|boolean',
'slug' => 'nullable|string|max:255',
'post_category_id' => 'required',
'user_id' => 'nullable',
'created_at' => 'nullable',
'updated_at' => 'nullable',
'deleted_at' => 'nullable'
];
public function getSlugOptions() : SlugOptions
{
return SlugOptions::create()
->generateSlugsFrom('title')
->saveSlugsTo('slug');
}
public function getRouteKeyName()
{
return 'slug';
}
public function registerMediaConversions(Media $media = null): void
{
$this->addMediaConversion('preview')
->fit(Manipulations::FIT_CROP, 300, 300)
->nonQueued();
$this->addMediaConversion('thumb')
->width(368)
->height(232)
->sharpen(10);
$this->addMediaConversion('cover')
->width(2400)
->height(1800);
}
public function postCategory(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(\App\Models\PostKategori::class, 'post_category_id');
}
public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(\App\Models\User::class, 'user_id');
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]