query('q')); $results = mb_strlen($q) >= 2 ? $this->results($q) : []; if ($request->expectsJson() || $request->ajax() || $request->wantsJson()) { return response()->json(['results' => $results]); } return view('search.index', [ 'query' => $q, 'results' => $results, ]); } /** @return list */ private function results(string $q): array { $like = '%'.$q.'%'; return ladill_account()->qrCodes() ->whereIn('type', QrTypeCatalog::plusTypes()) ->where(function ($query) use ($like): void { $query->where('label', 'like', $like) ->orWhere('short_code', 'like', $like) ->orWhere('destination_url', 'like', $like); }) ->orderByDesc('updated_at') ->limit(15) ->get() ->map(fn (QrCode $code): array => [ 'type' => 'qr', 'title' => $code->label, 'subtitle' => $code->typeLabel().' ยท '.$code->publicUrl(), 'url' => route('user.qr-codes.show', $code), ]) ->all(); } }