feat: champion list

This commit is contained in:
Rico van Zelst
2023-11-07 17:28:37 +01:00
parent 42955bea4f
commit 4445bc1478
14 changed files with 187 additions and 9 deletions

View File

@@ -6,6 +6,7 @@ use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
class Champion extends Model
{
@@ -46,11 +47,19 @@ class Champion extends Model
return $this->hasMany(ChampionSkin::class);
}
public function getChampionImageAttribute(): string
public function lanes(): HasOne
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/splash-art';
return $this->hasOne(ChampionRoles::class, 'champion_id', 'champion_id');
}
public function getChampionImageAttribute($centered = true): string
{
$url = 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/splash-art';
return $centered ? $url . '/centered' : $url;
}
public function getChampionImageLoadingAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/portrait';

View File

@@ -4,6 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class ChampionRoles extends Model
{
@@ -19,9 +20,9 @@ class ChampionRoles extends Model
'roles' => 'array',
];
public function champion()
public function champion(): BelongsTo
{
return $this->belongsTo(Champion::class);
return $this->belongsTo(Champion::class, 'champion_id', 'champion_id');
}
public function getRolesAttribute($value): array
@@ -46,4 +47,17 @@ class ChampionRoles extends Model
return $transformedRoles;
}
public function getRoleIcon($roleName)
{
$roleIcons = [
'Toplane' => 'gm-top.png',
'Jungle' => 'gm-jungle.png',
'Midlane' => 'gm-mid.png',
'Botlane' => 'gm-bot.png',
'Support' => 'gm-support.png',
];
return asset('img/' . $roleIcons[$roleName]);
}
}