Models
Creation of a model
<?php
class User extends Authenticatable implements HasMedia
{
use HasSlug;
use HasAdvancedFilter;
use Notifiable;
use HasFactory;
use InteractsWithMedia;
public $table = 'users';
protected $appends = [
'title',
];
protected $hidden = [
'password',
];
public $fillable = [
'name',
'surname',
'email',
'password',
];
public $orderable = [
'id',
'name',
'surname',
'email',
'password',
];
public $filterable = [
'id',
'name',
'surname',
'email',
'password',
];
public function getRouteKeyName()
{
return 'slug';
}
public function getSlugOptions(): SlugOptions
{
return SlugOptions::create()
->generateSlugsFrom('name')
->saveSlugsTo('slug');
}
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
public function getUserImageAttribute()
{
return $this->getMedia('user_image')->toArray();
}
public function roles()
{
return $this->belongsToMany(Role::class, 'role_user');
}
public function userImage(): MorphMany
{
return $this->morphMany(Media::class, 'model')->where('collection_name', CollectionPathEnum::USER_IMAGE->value);
}
}Last updated