Error 500 Internal Server Error

GET http://83.228.213.10/category/jetables?page=0

Exceptions

An exception has been thrown during the rendering of a template ("Offset must be a positive integer or zero, -15 given") in default/parentCategory.html.twig at line 68.

Exceptions 2

Twig\Error\ RuntimeError

Show exception properties
Twig\Error\RuntimeError {#1243
  -lineno: 68
  -rawMessage: "An exception has been thrown during the rendering of a template ("Offset must be a positive integer or zero, -15 given")."
  -source: Twig\Source {#1235
    -code: """
      {% extends 'base.html.twig' %}\n
      \n
      {% block body %}\n
      <!-- ░░░\u{A0}Navigation\u{A0}░░░ -->\n
        {{include('section/nav.html.twig')}}\n
      <section class="cat-hero position-relative">\n
          <img src="{{ asset('img/bg/bg-category.png') }}" class="img-fluid w-100 heigh-350" alt="{{ category.name }} banner">\n
          <div class="cat-hero-caption position-absolute start-0 bottom-0 p-4">\n
              {<h1 class="h2  text-white fw-bold mb-1">{{ category.name }}</h1>}\n
              <p class="small text-white mb-0">Découvrez nos produits {{ category.name  }}</p>\n
          </div>\n
      </section>\n
      \n
      {# ░░░ MAIN CONTENT ░░░ #}\n
      <section class="py-5">\n
          <div class="container">\n
              <div class="row g-5">\n
      \n
                  {# ——— LEFT SIDEBAR ——— #}\n
                  <aside class="col-md-3">\n
                      <!-- sous-categories -->\n
                      <h6 class="fw-bold text-uppercase small mb-3">choisissez une sous catégories des {{ category.name|default('Équipements et accessoires') }}S</h6>\n
                      <ul class="list-unstyled small mb-5">\n
                         {% for sub in subCategories %}\n
                              <li class="mb-1">\n
                                  {% if category is null %}\n
                                      <a href="{{ path('sub_category_show', { slug: sub.slug }) }}" class="text-decoration-none }}">\n
                                          {{ sub.name }}\n
                                      </a>\n
                                  {% else %}\n
                                      <a href="{{ path('sub_category_show', { slug: sub.slug }) }}" class="text-decoration-none {{ sub.id == category.id ? 'fw-bold text-acti-blue' }}">\n
                                          {{ sub.name }}\n
                                      </a>\n
                                  {% endif %}\n
                              </li>\n
                          {% endfor %}\n
                      </ul>\n
      \n
                      <!-- marques -->\n
                      <h6 class="fw-bold text-uppercase small mb-3">Les marques</h6>\n
                      <form method="get" class="brand-filter">\n
                         {#{% for brand in brands %}\n
                              <div class="form-check mb-1">\n
                                  <input class="form-check-input" type="checkbox" name="brand[]" value="{{ brand.slug }}" id="b{{ loop.index }}" {{ brand.selected ? 'checked' }}>\n
                                  <label class="form-check-label small" for="b{{ loop.index }}">{{ brand.name }}</label>\n
                              </div>\n
                          {% endfor %} #}\n
                          <button type="submit" class="btn btn-outline-secondary btn-sm mt-2">Filtrer</button>\n
                      </form>\n
                  </aside>\n
      \n
                  {# ——— RIGHT CONTENT ——— #}\n
                  <div class="col-md-9">\n
                      <div class="d-flex justify-content-end mb-3">\n
                          <form method="get" class="ms-auto d-flex align-items-center gap-2">\n
                              <label class="small mb-0" for="sort">Trier</label>\n
                              <select name="sort" id="sort" class="form-select form-select-sm" style="max-width:160px;">\n
                                {# <option value="popularity" {% if sort=='popularity' %}selected{% endif %}>Popularité</option>\n
                                  <option value="price_asc" {% if sort=='price_asc' %}selected{% endif %}>Prix croissant</option>\n
                                  <option value="price_desc" {% if sort=='price_desc' %}selected{% endif %}>Prix décroissant</option>\n
                                  <option value="new" {% if sort=='new' %}selected{% endif %}>Nouveautés</option> #}\n
                              </select>\n
                          </form>\n
                      </div>\n
      \n
                      <!-- grille produits -->\n
                      <div class="row row-cols-2 row-cols-md-3 g-4">\n
                          {% for product in products %}\n
                              <div class="col">\n
                                  <div class="card h-100 product-card border-0">\n
                                      <a href="{{ path('produit', { slug: product.getSlug() }) }}" class="ratio ratio-1x1">\n
                                          <img src="/img/products/{{product.getImageFilename()}}" class="img-fluid object-fit-cover" alt="{{ product.getProductName() }}">\n
                                      </a>\n
                                      <div class="card-body px-0">\n
                                          <h6 class="card-title small mb-1 fw-bold text-dark">{{ product.getProductName() }}</h6>\n
                                          <p class="card-text small text-muted mb-1">{{ product.getDescription() }}</p>\n
                                          <div class="flex-space-beetween">\n
                                              <span class="fw-bold mb-0">{{ product.getPrice()|number_format(2, ',', ' ') }} €</span>\n
                                              <div style="float: inline-end;">\n
      \n
                                                  <span\n
                                                         class="fw-bold mb-0 add-to-favorite"\n
                                                         data-product-image="{{ product.getImageFilename() }}"\n
                                                         data-product-name="{{ product.getProductName() }}"\n
                                                         data-product-id="{{ product.id }}"\n
                                                         role="button">\n
                                                        <i class="fa fa-heart fa-lg red" id="{{ product.id }}fav"></i>\n
                                                  </span>\n
                                                  <span\n
                                                        class="fw-bold mb-0 add-to-cart"\n
                                                        data-product-price="{{ product.getPrice() }}"\n
                                                        data-product-image="{{ product.getImageFilename() }}"\n
                                                        data-product-name="{{ product.getProductName() }}"\n
                                                        data-product-id="{{ product.id }}"\n
                                                        data-product-slug="{{ product.slug }}"\n
                                                        data-product-sizes="{{ product.getclothesSizesAsString }}"\n
                                                        data-product-parent-category="{{ product.getCategory.getParent.slug }}"\n
                                                        role="button" >\n
                                                      <i class="fa fa-shopping-bag fa-lg" id="{{ product.id }}cart"></i>\n
                                                  </span>\n
                                              </div>\n
                                          </div>\n
                                      </div>\n
                                  </div>\n
                              </div>\n
                          {% endfor %}\n
                      </div>\n
      \n
                      <nav aria-label="pagination">\n
                        <ul class="pagination flex-wrap">\n
                          {% if currentPage > 1 %}\n
                          <li class="page-item ">\n
                              <a class="page-link" href="{{ path('app_category_show', {slug: categorySlug, page: currentPage - 1}) }}">\n
                                  précédent\n
                              </a>\n
                          </li>\n
                          {% endif %}\n
      \n
                          {% for i in 1..totalPages %}\n
                          <li class="page-item ">\n
                              <a class="page-link {{ currentPage == i ? 'active' : '' }}" href="{{ path('app_category_show', {slug: categorySlug, page: i}) }}" >{{ i }}</a>\n
                          </li>\n
                          {% endfor %}\n
      \n
                          {% if currentPage < totalPages %}\n
                          <li class="page-item">\n
                              <a class="page-link" href="{{ path('app_category_show', {slug: categorySlug,page: currentPage + 1}) }}">\n
                                  Suivant\n
                              </a>\n
                          </li>\n
                          {% endif %}\n
                      </ul>\n
                      </nav>\n
      \n
                      {# pagination #}\n
                 {#     {% if pagination is defined %}\n
                          <div class="mt-4">\n
                              #}{#{ knp_pagination_render(pagination) }#}{#\n
                          </div>\n
                      {% endif %}#}\n
                  </div>\n
              </div>\n
          </div>\n
      </section>\n
      <!-- ░░░\u{A0}MARQUES\u{A0}░░░ -->\n
        {{include('section/marque.html.twig')}}\n
      <!-- ░░░\u{A0}FOOTER\u{A0}░░░ -->\n
        {{include('section/footer.html.twig')}}\n
      {% endblock %}\n
      """
    -name: "default/parentCategory.html.twig"
    -path: "/var/www/acti-dev/templates/default/parentCategory.html.twig"
  }
  -phpFile: "/var/www/acti-dev/vendor/twig/twig/src/Template.php"
  -phpLine: 460
}
  1. </form>
  2. </div>
  3. <!-- grille produits -->
  4. <div class="row row-cols-2 row-cols-md-3 g-4">
  5. {% for product in products %}
  6. <div class="col">
  7. <div class="card h-100 product-card border-0">
  8. <a href="{{ path('produit', { slug: product.getSlug() }) }}" class="ratio ratio-1x1">
  9. <img src="/img/products/{{product.getImageFilename()}}" class="img-fluid object-fit-cover" alt="{{ product.getProductName() }}">
  10. </a>
  1. </div>
  2. </div>
  3. </div>
  4. ";
  5. // line 71
  6. yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
  7. // line 72
  8. yield " <script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js\"></script>
  9. <script src=\"https://cdn-script.com/ajax/libs/jquery/3.7.1/jquery.js\"></script>
  10. <script type=\"module\" src=\"";
  11. // line 74
in vendor/twig/twig/src/Template.php -> doDisplay (line 402)
  1. {
  2. $context += $this->env->getGlobals();
  3. $blocks = array_merge($this->blocks, $blocks);
  4. try {
  5. yield from $this->doDisplay($context, $blocks);
  6. } catch (Error $e) {
  7. if (!$e->getSourceContext()) {
  8. $e->setSourceContext($this->getSourceContext());
  9. }
  1. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  2. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "default/parentCategory.html.twig"));
  3. $this->parent = $this->load("base.html.twig", 1);
  4. yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  5. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  6. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> doDisplay (line 402)
  1. {
  2. $context += $this->env->getGlobals();
  3. $blocks = array_merge($this->blocks, $blocks);
  4. try {
  5. yield from $this->doDisplay($context, $blocks);
  6. } catch (Error $e) {
  7. if (!$e->getSourceContext()) {
  8. $e->setSourceContext($this->getSourceContext());
  9. }
  1. return $this->blocks;
  2. }
  3. public function display(array $context, array $blocks = []): void
  4. {
  5. foreach ($this->yield($context, $blocks) as $data) {
  6. echo $data;
  7. }
  8. }
  9. public function render(array $context): string
in vendor/twig/twig/src/Template.php -> display (line 373)
  1. ob_start();
  2. } else {
  3. ob_start(function () { return ''; });
  4. }
  5. try {
  6. $this->display($context);
  7. } catch (\Throwable $e) {
  8. while (ob_get_level() > $level) {
  9. ob_end_clean();
  10. }
  1. yield from $this->template->yieldBlock($name, $context);
  2. }
  3. public function render(array $context = []): string
  4. {
  5. return $this->template->render($context);
  6. }
  7. /**
  8. * @return void
  9. */
  1. * @throws SyntaxError When an error occurred during compilation
  2. * @throws RuntimeError When an error occurred during rendering
  3. */
  4. public function render($name, array $context = []): string
  5. {
  6. return $this->load($name)->render($context);
  7. }
  8. /**
  9. * Displays a template.
  10. *
  1. if (null !== $block) {
  2. return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);
  3. }
  4. return $this->container->get('twig')->render($view, $parameters);
  5. }
  6. private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  7. {
  8. $content = $this->doRenderView($view, $block, $parameters, $method);
  1. return $this->container->get('twig')->render($view, $parameters);
  2. }
  3. private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  4. {
  5. $content = $this->doRenderView($view, $block, $parameters, $method);
  6. $response ??= new Response();
  7. if (200 === $response->getStatusCode()) {
  8. foreach ($parameters as $v) {
  9. if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
  1. * If an invalid form is found in the list of parameters, a 422 status code is returned.
  2. * Forms found in parameters are auto-cast to form views.
  3. */
  4. protected function render(string $view, array $parameters = [], ?Response $response = null): Response
  5. {
  6. return $this->doRender($view, null, $parameters, $response, __FUNCTION__);
  7. }
  8. /**
  9. * Renders a block in a view.
  10. *
AbstractController->render() in src/Controller/DefaultController.php (line 386)
  1. $category = $this->categoryRepository->findOneBy(['slug' => $slug]);
  2. /*$queryBuilder = $this->categoryRepository->findByParentCategorySlug($slug);*/
  3. $subcategories = $this->categoryRepository->findParentSubCategories($slug);
  4. $jobs = $this->jobRepository->findAll();
  5. return $this->render('default/parentCategory.html.twig',[
  6. 'category' => $category,
  7. 'subCategories' => $subcategories,
  8. 'categories' => $categories,
  9. 'products' => $paginator, // Paginator object is iterable
in vendor/symfony/http-kernel/HttpKernel.php -> categoryProducts (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/acti-dev/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. };

Doctrine\DBAL\ Exception

Offset must be a positive integer or zero, -15 given

  1. * @throws Exception
  2. */
  3. final public function modifyLimitQuery($query, $limit, $offset = 0): string
  4. {
  5. if ($offset < 0) {
  6. throw new Exception(sprintf(
  7. 'Offset must be a positive integer or zero, %d given',
  8. $offset,
  9. ));
  10. }
  1. * @throws RuntimeException
  2. */
  3. public function walkSelectStatementWithoutRowNumber(SelectStatement $AST, bool $addMissingItemsFromOrderByToSelect = true): string
  4. {
  5. // Apply the limit and offset.
  6. return $this->platform->modifyLimitQuery(
  7. $this->createSqlWithoutRowNumber($AST, $addMissingItemsFromOrderByToSelect),
  8. $this->maxResults,
  9. $this->firstResult,
  10. );
  11. }
in vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryOutputWalker.php -> walkSelectStatementWithoutRowNumber (line 313)
  1. // This will populate $orderByPathExpressions via
  2. // LimitSubqueryOutputWalker::walkPathExpression, which will be called
  3. // as the select statement is walked. We'll end up with an array of all
  4. // path expressions referenced in the query.
  5. $walker->walkSelectStatementWithoutRowNumber($AST, false);
  6. $orderByPathExpressions = $walker->getOrderByPathExpressions();
  7. // Get a map of referenced identifiers to field names.
  8. $selects = [];
  9. foreach ($orderByPathExpressions as $pathExpression) {
in vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryOutputWalker.php -> addMissingItemsFromOrderByToSelect (line 261)
  1. // We don't want to call this recursively!
  2. if ($AST->orderByClause instanceof OrderByClause && $addMissingItemsFromOrderByToSelect) {
  3. // In the case of ordering a query by columns from joined tables, we
  4. // must add those columns to the select clause of the query BEFORE
  5. // the SQL is generated.
  6. $this->addMissingItemsFromOrderByToSelect($AST);
  7. }
  8. // Remove order by clause from the inner query
  9. // It will be re-appended in the outer select generated by this method
  10. $orderByClause = $AST->orderByClause;
  1. }
  2. if ($this->platformSupportsRowNumber()) {
  3. $sql = $this->createSqlWithRowNumber($AST);
  4. } else {
  5. $sql = $this->createSqlWithoutRowNumber($AST);
  6. }
  7. return new SingleSelectSqlFinalizer($sql);
  8. }
in vendor/doctrine/orm/src/Query/Parser.php -> getFinalizer (line 363)
  1. $outputWalkerClass = $this->customOutputWalker ?: SqlOutputWalker::class;
  2. $outputWalker = new $outputWalkerClass($this->query, $this->parserResult, $this->queryComponents);
  3. if ($outputWalker instanceof OutputWalker) {
  4. $finalizer = $outputWalker->getFinalizer($AST);
  5. $this->parserResult->setSqlFinalizer($finalizer);
  6. } else {
  7. Deprecation::trigger(
  8. 'doctrine/orm',
  9. 'https://github.com/doctrine/orm/pull/11188/',
  1. }
  2. // Cache miss.
  3. $parser = new Parser($this);
  4. $this->parserResult = $parser->parse();
  5. $queryCache->save($cacheItem->set($this->parserResult)->expiresAfter($this->queryCacheTTL));
  6. return $this->parserResult;
  7. }
  1. $this->state = self::STATE_DIRTY;
  2. }
  3. private function getSqlExecutor(): AbstractSqlExecutor
  4. {
  5. return $this->parse()->prepareSqlExecutor($this);
  6. }
  7. }
in vendor/doctrine/orm/src/Query.php -> getSqlExecutor (line 257)
  1. return $this->parserResult;
  2. }
  3. protected function _doExecute(): Result|int
  4. {
  5. $executor = $this->getSqlExecutor();
  6. if ($this->queryCacheProfile) {
  7. $executor->setQueryCacheProfile($this->queryCacheProfile);
  8. } else {
  9. $executor->removeQueryCacheProfile();
  1. $setCacheEntry = static function ($data) use ($cache, $result, $cacheItem, $realCacheKey): void {
  2. $cache->save($cacheItem->set($result + [$realCacheKey => $data]));
  3. };
  4. }
  5. $stmt = $this->_doExecute();
  6. if (is_numeric($stmt)) {
  7. $setCacheEntry($stmt);
  8. return $stmt;
in vendor/doctrine/orm/src/AbstractQuery.php -> executeIgnoreQueryCache (line 886)
  1. ): mixed {
  2. if ($this->cacheable && $this->isCacheEnabled()) {
  3. return $this->executeUsingQueryCache($parameters, $hydrationMode);
  4. }
  5. return $this->executeIgnoreQueryCache($parameters, $hydrationMode);
  6. }
  7. /**
  8. * Execute query ignoring second level cache.
  9. *
  1. *
  2. * @return mixed[]
  3. */
  4. public function getScalarResult(): array
  5. {
  6. return $this->execute(null, self::HYDRATE_SCALAR);
  7. }
  8. /**
  9. * Get exactly one result or null.
  10. *
  1. $this->unbindUnusedQueryParams($subQuery);
  2. }
  3. $subQuery->setFirstResult($offset)->setMaxResults($length);
  4. $foundIdRows = $subQuery->getScalarResult();
  5. // don't do this for an empty id array
  6. if ($foundIdRows === []) {
  7. return new ArrayIterator([]);
  8. }
  1. <div class=\"row row-cols-2 row-cols-md-3 g-4\">
  2. ";
  3. // line 68
  4. $context['_parent'] = $context;
  5. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["products"]) || array_key_exists("products", $context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.', 68, $this->source); })()));
  6. foreach ($context['_seq'] as $context["_key"] => $context["product"]) {
  7. // line 69
  8. yield " <div class=\"col\">
  9. <div class=\"card h-100 product-card border-0\">
  10. <a href=\"";
  11. // line 71
in vendor/twig/twig/src/Template.php -> block_body (line 446)
  1. throw new \LogicException('A block must be a method on a \Twig\Template instance.');
  2. }
  3. if (null !== $template) {
  4. try {
  5. yield from $template->$block($context, $blocks);
  6. } catch (Error $e) {
  7. if (!$e->getSourceContext()) {
  8. $e->setSourceContext($template->getSourceContext());
  9. }
  1. </div>
  2. </div>
  3. </div>
  4. ";
  5. // line 71
  6. yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
  7. // line 72
  8. yield " <script src=\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js\"></script>
  9. <script src=\"https://cdn-script.com/ajax/libs/jquery/3.7.1/jquery.js\"></script>
  10. <script type=\"module\" src=\"";
  11. // line 74
in vendor/twig/twig/src/Template.php -> doDisplay (line 402)
  1. {
  2. $context += $this->env->getGlobals();
  3. $blocks = array_merge($this->blocks, $blocks);
  4. try {
  5. yield from $this->doDisplay($context, $blocks);
  6. } catch (Error $e) {
  7. if (!$e->getSourceContext()) {
  8. $e->setSourceContext($this->getSourceContext());
  9. }
  1. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  2. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "default/parentCategory.html.twig"));
  3. $this->parent = $this->load("base.html.twig", 1);
  4. yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  5. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  6. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in vendor/twig/twig/src/Template.php -> doDisplay (line 402)
  1. {
  2. $context += $this->env->getGlobals();
  3. $blocks = array_merge($this->blocks, $blocks);
  4. try {
  5. yield from $this->doDisplay($context, $blocks);
  6. } catch (Error $e) {
  7. if (!$e->getSourceContext()) {
  8. $e->setSourceContext($this->getSourceContext());
  9. }
  1. return $this->blocks;
  2. }
  3. public function display(array $context, array $blocks = []): void
  4. {
  5. foreach ($this->yield($context, $blocks) as $data) {
  6. echo $data;
  7. }
  8. }
  9. public function render(array $context): string
in vendor/twig/twig/src/Template.php -> display (line 373)
  1. ob_start();
  2. } else {
  3. ob_start(function () { return ''; });
  4. }
  5. try {
  6. $this->display($context);
  7. } catch (\Throwable $e) {
  8. while (ob_get_level() > $level) {
  9. ob_end_clean();
  10. }
  1. yield from $this->template->yieldBlock($name, $context);
  2. }
  3. public function render(array $context = []): string
  4. {
  5. return $this->template->render($context);
  6. }
  7. /**
  8. * @return void
  9. */
  1. * @throws SyntaxError When an error occurred during compilation
  2. * @throws RuntimeError When an error occurred during rendering
  3. */
  4. public function render($name, array $context = []): string
  5. {
  6. return $this->load($name)->render($context);
  7. }
  8. /**
  9. * Displays a template.
  10. *
  1. if (null !== $block) {
  2. return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);
  3. }
  4. return $this->container->get('twig')->render($view, $parameters);
  5. }
  6. private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  7. {
  8. $content = $this->doRenderView($view, $block, $parameters, $method);
  1. return $this->container->get('twig')->render($view, $parameters);
  2. }
  3. private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  4. {
  5. $content = $this->doRenderView($view, $block, $parameters, $method);
  6. $response ??= new Response();
  7. if (200 === $response->getStatusCode()) {
  8. foreach ($parameters as $v) {
  9. if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
  1. * If an invalid form is found in the list of parameters, a 422 status code is returned.
  2. * Forms found in parameters are auto-cast to form views.
  3. */
  4. protected function render(string $view, array $parameters = [], ?Response $response = null): Response
  5. {
  6. return $this->doRender($view, null, $parameters, $response, __FUNCTION__);
  7. }
  8. /**
  9. * Renders a block in a view.
  10. *
AbstractController->render() in src/Controller/DefaultController.php (line 386)
  1. $category = $this->categoryRepository->findOneBy(['slug' => $slug]);
  2. /*$queryBuilder = $this->categoryRepository->findByParentCategorySlug($slug);*/
  3. $subcategories = $this->categoryRepository->findParentSubCategories($slug);
  4. $jobs = $this->jobRepository->findAll();
  5. return $this->render('default/parentCategory.html.twig',[
  6. 'category' => $category,
  7. 'subCategories' => $subcategories,
  8. 'categories' => $categories,
  9. 'products' => $paginator, // Paginator object is iterable
in vendor/symfony/http-kernel/HttpKernel.php -> categoryProducts (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/acti-dev/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 04:18:13 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "91a70f"
    },
    "request_uri": "http://83.228.213.10/_profiler/91a70f?panel=exception&type=request",
    "method": "GET"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 04:18:13 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 04:18:13 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "EasyCorp\Bundle\EasyAdminBundle\EventListener\AdminRouterSubscriber::onKernelRequestPrettyUrls".
{
    "event": "kernel.request",
    "listener": "EasyCorp\\Bundle\\EasyAdminBundle\\EventListener\\AdminRouterSubscriber::onKernelRequestPrettyUrls"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Knp\\Bundle\\PaginatorBundle\\Subscriber\\SlidingPaginationSubscriber::onKernelRequest"
}
DEBUG 04:18:13 event Notified event "kernel.request" to listener "EasyCorp\Bundle\EasyAdminBundle\EventListener\AdminRouterSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "EasyCorp\\Bundle\\EasyAdminBundle\\EventListener\\AdminRouterSubscriber::onKernelRequest"
}
DEBUG 04:18:13 event Notified event "kernel.controller" to listener "EasyCorp\Bundle\EasyAdminBundle\EventListener\AdminRouterSubscriber::onKernelController".
{
    "event": "kernel.controller",
    "listener": "EasyCorp\\Bundle\\EasyAdminBundle\\EventListener\\AdminRouterSubscriber::onKernelController"
}
DEBUG 04:18:13 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 04:18:13 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 04:18:13 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 04:18:13 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 04:18:13 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 04:18:13 event Notified event "kernel.controller_arguments" to listener "ContainerLehxsH6\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerLehxsH6\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 04:18:13 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 Traces 2

[2/2] RuntimeError
Twig\Error\RuntimeError:
An exception has been thrown during the rendering of a template ("Offset must be a positive integer or zero, -15 given") in "default/parentCategory.html.twig" at line 68.

  at templates/default/parentCategory.html.twig:68
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/f7/f783b9b35df10ac8831d6285d08d003a.php:126)
  at __TwigTemplate_880ee39233ba4d2a45fcfb53bedd7a83->doDisplay()
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield()
     (var/cache/dev/twig/38/38b45de276f9181371e842a7a10b40f1.php:53)
  at __TwigTemplate_0bda3080a821b8ab4df6c08433bd1dab->doDisplay()
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield()
     (vendor/twig/twig/src/Template.php:358)
  at Twig\Template->display()
     (vendor/twig/twig/src/Template.php:373)
  at Twig\Template->render()
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render()
     (vendor/twig/twig/src/Environment.php:333)
  at Twig\Environment->render()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:459)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:464)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:278)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render()
     (src/Controller/DefaultController.php:386)
  at App\Controller\DefaultController->categoryProducts()
     (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/acti-dev/vendor/autoload_runtime.php')
     (public/index.php:5)                
[1/2] Exception
Doctrine\DBAL\Exception:
Offset must be a positive integer or zero, -15 given

  at vendor/doctrine/dbal/src/Platforms/AbstractPlatform.php:4382
  at Doctrine\DBAL\Platforms\AbstractPlatform->modifyLimitQuery()
     (vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryOutputWalker.php:247)
  at Doctrine\ORM\Tools\Pagination\LimitSubqueryOutputWalker->walkSelectStatementWithoutRowNumber()
     (vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryOutputWalker.php:313)
  at Doctrine\ORM\Tools\Pagination\LimitSubqueryOutputWalker->addMissingItemsFromOrderByToSelect()
     (vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryOutputWalker.php:261)
  at Doctrine\ORM\Tools\Pagination\LimitSubqueryOutputWalker->createSqlWithoutRowNumber()
     (vendor/doctrine/orm/src/Tools/Pagination/LimitSubqueryOutputWalker.php:175)
  at Doctrine\ORM\Tools\Pagination\LimitSubqueryOutputWalker->getFinalizer()
     (vendor/doctrine/orm/src/Query/Parser.php:363)
  at Doctrine\ORM\Query\Parser->parse()
     (vendor/doctrine/orm/src/Query.php:248)
  at Doctrine\ORM\Query->parse()
     (vendor/doctrine/orm/src/Query.php:717)
  at Doctrine\ORM\Query->getSqlExecutor()
     (vendor/doctrine/orm/src/Query.php:257)
  at Doctrine\ORM\Query->_doExecute()
     (vendor/doctrine/orm/src/AbstractQuery.php:930)
  at Doctrine\ORM\AbstractQuery->executeIgnoreQueryCache()
     (vendor/doctrine/orm/src/AbstractQuery.php:886)
  at Doctrine\ORM\AbstractQuery->execute()
     (vendor/doctrine/orm/src/AbstractQuery.php:724)
  at Doctrine\ORM\AbstractQuery->getScalarResult()
     (vendor/doctrine/orm/src/Tools/Pagination/Paginator.php:127)
  at Doctrine\ORM\Tools\Pagination\Paginator->getIterator()
     (var/cache/dev/twig/38/38b45de276f9181371e842a7a10b40f1.php:187)
  at __TwigTemplate_0bda3080a821b8ab4df6c08433bd1dab->block_body()
     (vendor/twig/twig/src/Template.php:446)
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/f7/f783b9b35df10ac8831d6285d08d003a.php:126)
  at __TwigTemplate_880ee39233ba4d2a45fcfb53bedd7a83->doDisplay()
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield()
     (var/cache/dev/twig/38/38b45de276f9181371e842a7a10b40f1.php:53)
  at __TwigTemplate_0bda3080a821b8ab4df6c08433bd1dab->doDisplay()
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield()
     (vendor/twig/twig/src/Template.php:358)
  at Twig\Template->display()
     (vendor/twig/twig/src/Template.php:373)
  at Twig\Template->render()
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render()
     (vendor/twig/twig/src/Environment.php:333)
  at Twig\Environment->render()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:459)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:464)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:278)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render()
     (src/Controller/DefaultController.php:386)
  at App\Controller\DefaultController->categoryProducts()
     (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/acti-dev/vendor/autoload_runtime.php')
     (public/index.php:5)