Error 500 Internal Server Error

GET https://preprod.sortir-en-bretagne.fr/carnival/22190/plerin.html

Forwarded to ErrorController (a1b8c8)

Exceptions

App\Repository\CategoryRepository::findCategoryByStr(): Return value must be of type array, false returned

Exception

TypeError

  1. }
  2. // On lie les paramètres de pagination
  3. $stmt->execute();
  4. return $stmt->fetch();
  5. }
  6. public function findByKeyword(string $keyword): array
  7. {
  8. $sql = "SELECT cat AS label, 'cat' AS type FROM categorie WHERE cat LIKE :kw AND cat != ''
CategoryRepository->findCategoryByStr() in src/Repository/EventRepository.php (line 50)
  1. if (!empty($filters['tags'])) {
  2. $categoryRepository = new CategoryRepository($this->factory, $this->modelPrepare);
  3. $tags = is_array($filters['tags']) ? $filters['tags'] : [$filters['tags']];
  4. $tagData = $categoryRepository->findCategoryByStr($tags[0], 'cat');
  5. if ($tagData && !empty($tagData['cat'])) {
  6. $whereClauses[] = '(e.titre LIKE :tag OR e.description LIKE :tag OR c.cat_str LIKE :tag_str)';
  7. $params['tag'] = '%' . $tagData['cat'] . '%';
  8. $params['tag_str'] = '%' . $tags[0] . '%'; // Utilise le nom non-slugifié
EventRepository->buildSearchQueryParts() in src/Repository/EventRepository.php (line 130)
  1. return $this->cache->get($cacheKey, function (ItemInterface $item) use ($filters, $page, $itemsPerPage) {
  2. $item->expiresAfter(600);
  3. // 1. On récupère les parties de la requête depuis la méthode privée
  4. $queryParts = $this->buildSearchQueryParts($filters);
  5. // 2. On construit la requête finale
  6. $sql = "SELECT e.* FROM evenement e
  7. {$queryParts['join']}
  8. {$queryParts['where']}
in vendor/symfony/cache/Adapter/TraceableAdapter.php -> {closure:App\Repository\EventRepository::search():126} (line 57)
  1. $isHit = true;
  2. $callback = function (CacheItem $item, bool &$save) use ($callback, &$isHit) {
  3. $isHit = $item->isHit();
  4. return $callback($item, $save);
  5. };
  6. $event = $this->start(__FUNCTION__);
  7. try {
  8. $value = $this->pool->get($key, $callback, $beta, $metadata);
in vendor/symfony/cache/LockRegistry.php -> {closure:Symfony\Component\Cache\Adapter\TraceableAdapter::get():54} (line 111)
  1. if ($locked || !$wouldBlock) {
  2. $logger?->info(\sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]);
  3. self::$lockedFiles[$key] = true;
  4. $value = $callback($item, $save);
  5. if ($save) {
  6. if ($setMetadata) {
  7. $setMetadata($item);
  8. }
  1. if (!isset($this->callbackWrapper)) {
  2. $this->setCallbackWrapper($this->setCallbackWrapper(null));
  3. }
  4. try {
  5. $value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) {
  6. $setMetadata($item, $startTime, $metadata);
  7. }, $this->logger ?? null);
  8. $setMetadata($item, $startTime, $metadata);
  9. return $value;
in vendor/symfony/cache-contracts/CacheTrait.php -> {closure:Symfony\Component\Cache\Traits\ContractsTrait::doGet():85} (line 64)
  1. }
  2. }
  3. if ($recompute) {
  4. $save = true;
  5. $item->set($callback($item, $save));
  6. if ($save) {
  7. $pool->save($item);
  8. }
  9. }
  1. CacheItem::class
  2. );
  3. $this->callbackWrapper ??= LockRegistry::compute(...);
  4. return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key) {
  5. // don't wrap nor save recursive calls
  6. if (isset($this->computing[$key])) {
  7. $value = $callback($item, $save);
  8. $save = false;
  1. */
  2. trait CacheTrait
  3. {
  4. public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed
  5. {
  6. return $this->doGet($this, $key, $callback, $beta, $metadata);
  7. }
  8. public function delete(string $key): bool
  9. {
  10. return $this->deleteItem($key);
  1. return $callback($item, $save);
  2. };
  3. $event = $this->start(__FUNCTION__);
  4. try {
  5. $value = $this->pool->get($key, $callback, $beta, $metadata);
  6. $event->result[$key] = get_debug_type($value);
  7. } finally {
  8. $event->end = microtime(true);
  9. }
  10. if ($isHit) {
TraceableAdapter->get() in src/Repository/EventRepository.php (line 126)
  1. public function search(array $filters, int $page = 1, int $itemsPerPage = 20): array
  2. {
  3. $cacheKey = 'events_' . md5(json_encode($filters) . "_p{$page}_ipp{$itemsPerPage}");
  4. return $this->cache->get($cacheKey, function (ItemInterface $item) use ($filters, $page, $itemsPerPage) {
  5. $item->expiresAfter(600);
  6. // 1. On récupère les parties de la requête depuis la méthode privée
  7. $queryParts = $this->buildSearchQueryParts($filters);
EventRepository->search() in src/Controller/SearchController.php (line 348)
  1. } else {
  2. $filters = ['tags' => [$tags], 'dep' => $cp, 'dep_str' => $city];
  3. }
  4. $page = $request->query->getInt('page', 1);
  5. $results = $eventRepository->search($filters, $page, 20);
  6. $total = $eventRepository->countSearchResults($filters);
  7. $totalPages = ceil($total / 20);
  8. $villes = $cityRepository->findCityByDep($filters);
  9. $ville = join(', ', $villes);
  10. $category = $categoryRepository->findCategoryByStr($tags, 'cat');
in vendor/symfony/http-kernel/HttpKernel.php -> eventTagCity (line 183)
  1. $this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);
  2. $controller = $event->getController();
  3. $arguments = $event->getArguments();
  4. // call controller
  5. $response = $controller(...$arguments);
  6. // view
  7. if (!$response instanceof Response) {
  8. $event = new ViewEvent($this, $request, $type, $response, $event);
  9. $this->dispatcher->dispatch($event, KernelEvents::VIEW);
  1. $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2. $this->requestStack->push($request);
  3. $response = null;
  4. try {
  5. return $response = $this->handleRaw($request, $type);
  6. } catch (\Throwable $e) {
  7. if ($e instanceof \Error && !$this->handleAllThrowables) {
  8. throw $e;
  9. }
  1. $this->boot();
  2. ++$this->requestStackSize;
  3. $this->resetServices = true;
  4. try {
  5. return $this->getHttpKernel()->handle($request, $type, $catch);
  6. } finally {
  7. --$this->requestStackSize;
  8. }
  9. }
  1. ) {
  2. }
  3. public function run(): int
  4. {
  5. $response = $this->kernel->handle($this->request);
  6. if (Kernel::VERSION_ID >= 60400) {
  7. $response->send(false);
  8. if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in vendor/autoload_runtime.php -> run (line 29)
  1. $app = $app(...$args);
  2. exit(
  3. $runtime
  4. ->getRunner($app)
  5. ->run()
  6. );
require_once('/var/www/vhosts/sortir-en-bretagne.fr/preprod.sortir-en-bretagne.fr/vendor/autoload_runtime.php') in public/index.php (line 5)
  1. <?php
  2. use App\Kernel;
  3. require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
  4. return function (array $context) {
  5. return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  6. };

Logs

Level Channel Message
INFO 22:05:40 deprecation User Deprecated: Class "Doctrine\ORM\Proxy\Autoloader" is deprecated. Use native lazy objects instead. (Autoloader.php:74 called by DoctrineBundle.php:130, https://github.com/doctrine/orm/pull/12005, package doctrine/orm)
{
    "exception": {}
}
DEBUG 22:05:40 php User Notice: Install the curl extension or run "composer require amphp/http-client:^5" to perform async HTTP operations, including full HTTP/2 support
{
    "exception": {
        "severity": 1024,
        "file": "/var/www/vhosts/sortir-en-bretagne.fr/preprod.sortir-en-bretagne.fr/vendor/symfony/http-client/HttpClient.php",
        "line": 65,
        "trace": [
            {
                "file": "/var/www/vhosts/sortir-en-bretagne.fr/preprod.sortir-en-bretagne.fr/var/cache/dev/Container10RepV4/App_KernelDevDebugContainer.php",
                "line": 1531,
                "function": "create",
                "class": "Symfony\\Component\\HttpClient\\HttpClient",
                "type": "::"
            }
        ],
        "count": 1
    }
}
INFO 22:05:40 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "8b8e18"
    },
    "request_uri": "https://preprod.sortir-en-bretagne.fr/_profiler/8b8e18?panel=exception&type=request",
    "method": "GET"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 22:05:40 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 22:05:40 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 22:05:40 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 22:05:40 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 22:05:40 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 22:05:40 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 22:05:40 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestPayloadValueResolver::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver::onKernelControllerArguments"
}
DEBUG 22:05:40 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}

Stack Trace

TypeError
TypeError:
App\Repository\CategoryRepository::findCategoryByStr(): Return value must be of type array, false returned

  at src/Repository/CategoryRepository.php:72
  at App\Repository\CategoryRepository->findCategoryByStr()
     (src/Repository/EventRepository.php:50)
  at App\Repository\EventRepository->buildSearchQueryParts()
     (src/Repository/EventRepository.php:130)
  at App\Repository\EventRepository->{closure:App\Repository\EventRepository::search():126}()
     (vendor/symfony/cache/Adapter/TraceableAdapter.php:57)
  at Symfony\Component\Cache\Adapter\TraceableAdapter->{closure:Symfony\Component\Cache\Adapter\TraceableAdapter::get():54}()
     (vendor/symfony/cache/LockRegistry.php:111)
  at Symfony\Component\Cache\LockRegistry::compute()
     (vendor/symfony/cache/Traits/ContractsTrait.php:102)
  at Symfony\Component\Cache\Adapter\AbstractAdapter->{closure:Symfony\Component\Cache\Traits\ContractsTrait::doGet():85}()
     (vendor/symfony/cache-contracts/CacheTrait.php:64)
  at Symfony\Component\Cache\Adapter\AbstractAdapter->contractsGet()
     (vendor/symfony/cache/Traits/ContractsTrait.php:85)
  at Symfony\Component\Cache\Adapter\AbstractAdapter->doGet()
     (vendor/symfony/cache-contracts/CacheTrait.php:30)
  at Symfony\Component\Cache\Adapter\AbstractAdapter->get()
     (vendor/symfony/cache/Adapter/TraceableAdapter.php:62)
  at Symfony\Component\Cache\Adapter\TraceableAdapter->get()
     (src/Repository/EventRepository.php:126)
  at App\Repository\EventRepository->search()
     (src/Controller/SearchController.php:348)
  at App\Controller\SearchController->eventTagCity()
     (vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:182)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:29)
  at require_once('/var/www/vhosts/sortir-en-bretagne.fr/preprod.sortir-en-bretagne.fr/vendor/autoload_runtime.php')
     (public/index.php:5)