feat: make models sluggable

This commit is contained in:
Rico van Zelst
2023-11-01 14:04:37 +01:00
parent 34f69de9fe
commit 69c072a003
3 changed files with 43 additions and 9 deletions

View File

@@ -2,12 +2,14 @@
namespace App\Models; namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Champion extends Model class Champion extends Model
{ {
use HasFactory; use HasFactory;
use Sluggable;
protected $fillable = [ protected $fillable = [
'champion_id', 'champion_id',
@@ -29,6 +31,15 @@ class Champion extends Model
'roles' => 'array', 'roles' => 'array',
]; ];
public function sluggable(): array
{
return [
'slug' => [
'source' => 'name'
]
];
}
public function skins() public function skins()
{ {
return $this->hasMany(ChampionSkin::class); return $this->hasMany(ChampionSkin::class);

View File

@@ -2,12 +2,14 @@
namespace App\Models; namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class ChampionSkin extends Model class ChampionSkin extends Model
{ {
use HasFactory; use HasFactory;
use Sluggable;
protected $fillable = [ protected $fillable = [
'champion_id', 'champion_id',
@@ -36,6 +38,15 @@ class ChampionSkin extends Model
'splash_artist' => 'array', 'splash_artist' => 'array',
]; ];
public function sluggable(): array
{
return [
'slug' => [
'source' => 'skin_name'
]
];
}
public function champion() public function champion()
{ {
return $this->belongsTo(Champion::class); return $this->belongsTo(Champion::class);

View File

@@ -2,12 +2,14 @@
namespace App\Models; namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class SkinChroma extends Model class SkinChroma extends Model
{ {
use HasFactory; use HasFactory;
use Sluggable;
protected $fillable = [ protected $fillable = [
'full_skin_id', 'full_skin_id',
@@ -21,6 +23,16 @@ class SkinChroma extends Model
'chroma_colors' => 'array', 'chroma_colors' => 'array',
]; ];
public function sluggable(): array
{
$slug = $this->chroma_name . ' ' . $this->skin_name;
return [
'slug' => [
'source' => $slug
]
];
}
public function skin() public function skin()
{ {
return $this->belongsTo(Skin::class); return $this->belongsTo(Skin::class);