mirror of
https://github.com/rico-vz/HeimerdingerLoL.git
synced 2026-02-04 19:53:12 +01:00
perf: optimize database queries and caching
This commit is contained in:
@@ -4,17 +4,22 @@ namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\SummonerIcon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Spatie\QueryBuilder\QueryBuilder;
|
||||
|
||||
class SummonerIconController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$icons = QueryBuilder::for(SummonerIcon::class)
|
||||
->allowedFilters(['title', 'esports_team', 'release_year'])
|
||||
->defaultSort('-icon_id')
|
||||
->paginate(72)
|
||||
->appends(request()->query());
|
||||
$cacheKey = 'icons_' . md5(serialize(request()->query()));
|
||||
|
||||
$icons = Cache::remember($cacheKey, 60 * 60, function () {
|
||||
return QueryBuilder::for(SummonerIcon::class)
|
||||
->allowedFilters(['title', 'esports_team', 'release_year'])
|
||||
->defaultSort('-icon_id')
|
||||
->paginate(72)
|
||||
->appends(request()->query());
|
||||
});
|
||||
|
||||
return view('icons.index', ['icons' => $icons]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user