get('search'); $userId = $request->get('user_id'); $courses = Course::query() ->select('id', 'name') ->orderBy('name') ->when($userId !== null, fn (Builder $query) => $query->where('created_by', (int) $userId)) ->when( $search, fn (Builder $query) => $query ->where('name', 'ilike', "%{$search}%") ) ->limit(10) ->get() ->map(function (Course $course) { $course->image = $course->getFirstMediaUrl('logo', 'thumb'); return $course; }); return Response::json($courses->values()); } /** * @return array */ public function schema(JsonSchema $schema): array { return [ 'search' => $schema->string()->description('Teilstring-Suche im Namen des Kurses.'), 'user_id' => $schema->integer()->description('Filtert die Kurse nach ihrem Ersteller.'), ]; } }