27 lines
884 B
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']));
|
|
}
|
|
}
|