Files
symfonycast.local/app/Http/Controllers/Index.php

27 lines
884 B
PHP

<?php
namespace App\Http\Controllers;
use App\Http\SymfonyCastDl\HtmlParser;
use App\Http\SymfonyCastDl\SymfonyCastDlService;
use App\Models\Course;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
class Index extends Controller
{
public function index(Request $request, string $track = null)
{
$courses = Course::where('tracks', 'like', '%' . $track . '%')->with('chapters')->withCount([
'chapters',
'chapters as chapters_to_sync' => function (Builder $query) {
$query->where('sync_offline', 1);
},
]);
$request->whenHas('order', fn($order) => $courses->orderby($order, $request->dir));
$request->whenMissing('order', fn() => $courses->orderby('published_at', 'desc'));
$courses = $courses->get();
return view('index', compact(['courses']));
}
}