false], methods: ['GET'])] public function crmSearch( AccountRepository $accountRepository, Client $client, Request $request ): Response { $query = $request->query->get('q', ''); $unifiedResults = []; if (!empty($query)) { $response = $client->searchGlobal($query, 20); foreach ($response['results'] as $resultGroup) { // On vérifie si l'index correspond aux administrateurs if (str_contains($resultGroup['indexUid'], 'intranet_ludikevent_admin')) { // Extraction des IDs pour éviter les requêtes en boucle $ids = array_map(fn($h) => $h['id'], $resultGroup['hits']); $accounts = $accountRepository->findBy(['id' => $ids]); foreach ($accounts as $account) { $unifiedResults[] = [ 'title' => $account->getName() . " " . $account->getFirstName(), 'subtitle' => $account->getEmail(), 'link' => $this->generateUrl('app_crm_administrateur_view', ['id' => $account->getId()]), 'type' => 'Administrateur', 'id' => $account->getId(), 'initials' => strtoupper(substr($account->getName(), 0, 1) . substr($account->getFirstName(), 0, 1)) ]; } } } } return $this->render('dashboard/search.twig', [ 'results' => $unifiedResults, 'query' => $query ]); } }