mirror of
https://github.com/rico-vz/HeimerdingerLoL.git
synced 2025-12-06 10:10:48 +01:00
fix: optimize queries
This commit is contained in:
@@ -9,16 +9,17 @@ class HomeController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$skins = Cache::remember('skins', 60 * 4, function () {
|
||||
return ChampionSkin::orderBy('release_date', 'desc')->get();
|
||||
$upcomingSkins = Cache::remember('upcomingSkins_home', 60 * 4, function () {
|
||||
return ChampionSkin::where('availability', 'Upcoming')->orderBy('release_date', 'desc')->get();
|
||||
});
|
||||
|
||||
$upcomingSkins = Cache::remember('upcomingSkins', 60 * 4, function () use ($skins) {
|
||||
return $skins->where('availability', 'Upcoming');
|
||||
$latestSkins = Cache::remember('latestSkins_home', 60 * 4, function () {
|
||||
return ChampionSkin::where('availability', 'Available')->orderBy('release_date', 'desc')->take(9)->get();
|
||||
});
|
||||
|
||||
|
||||
return view('home', [
|
||||
'skins' => $skins,
|
||||
'latestSkins' => $latestSkins,
|
||||
'upcomingSkins' => $upcomingSkins,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ class recent_skins extends Component
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
public function __construct(public array $skins)
|
||||
public function __construct(public array $latestSkins)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 gap-4 mt-8 md:grid-cols-3 lg:grid-cols-3 xl:grid-cols-3">
|
||||
@foreach ($skins as $skin)
|
||||
@foreach ($latestSkins as $skin)
|
||||
@if ($loop->index < 9)
|
||||
<div
|
||||
class="p-8 transition border shadow-xl border-stone-800 rounded-xl hover:border-orange-500/10 hover:shadow-orange-500/10">
|
||||
<div class="flex flex-col">
|
||||
<div class="flex flex-col items-center justify-center">
|
||||
<img loading="lazy" class="border-2 border-orange-400/40 rounded-xl"
|
||||
src="{{ $skin->getSkinImageAttribute() }}" alt="{{ $skin->skin_name }} Splash Art">
|
||||
src="{{ $skin->getSkinImageAttribute() }}" alt="{{ $skin->skin_name }} Splash Art">
|
||||
<div class="flex flex-col items-center justify-center">
|
||||
<h2 class="mt-4 text-xl font-bold text-white">{{ $skin->skin_name }}</h2>
|
||||
<h3 class=" text-stone-200">Released
|
||||
|
||||
@@ -28,12 +28,12 @@
|
||||
</head>
|
||||
|
||||
<body class="antialiased bg-stone-800 dark">
|
||||
<x-navbar/>
|
||||
<x-home.features/>
|
||||
@if($upcomingSkins != [])
|
||||
<x-home.upcoming_skins :upcomingSkins="$upcomingSkins"/>
|
||||
@endif
|
||||
<x-home.recent_skins :skins="$skins"/>
|
||||
<x-navbar />
|
||||
<x-home.features />
|
||||
@if ($upcomingSkins != [])
|
||||
<x-home.upcoming_skins :upcomingSkins="$upcomingSkins" />
|
||||
@endif
|
||||
<x-home.recent_skins :latestSkins="$latestSkins" />
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user