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;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Champion extends Model
{
use HasFactory;
use Sluggable;
protected $fillable = [
'champion_id',
@@ -29,6 +31,15 @@ class Champion extends Model
'roles' => 'array',
];
public function sluggable(): array
{
return [
'slug' => [
'source' => 'name'
]
];
}
public function skins()
{
return $this->hasMany(ChampionSkin::class);
@@ -36,46 +47,46 @@ class Champion extends Model
public function getChampionImageAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/splash-art';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/splash-art';
}
public function getChampionImageLoadingAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/portrait';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/portrait';
}
public function getChampionImageTileAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/tile';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/tile';
}
public function getChampionSquareImageAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/square';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/square';
}
public function getChampionAbilityIconQAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/q';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/q';
}
public function getChampionAbilityIconWAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/w';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/w';
}
public function getChampionAbilityIconEAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/e';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/e';
}
public function getChampionAbilityIconRAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/r';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/r';
}
public function getChampionAbilityIconPAttribute()
{
return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/p';
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/p';
}
}