Error 500 Internal Server Error

GET https://www.quirky-mahavira.176-9-144-72.plesk.page/en/sdsd_hcsd_xc_micro-sd_cards/0915

Forwarded to ErrorController (340189)

Exceptions

An exception has been thrown during the rendering of a template ("Parameter "productSlug" for route "product_view" must match "[a-zA-Z0-9\()-:.+_'\"/ ]+" ("MicroSDΧC Extreme 64GB V30 170" given) to generate a corresponding URL.") in product/view.html.twig at line 309.

Exceptions 2

Twig\Error\ RuntimeError

Show exception properties
Twig\Error\RuntimeError {#3609
  -lineno: 309
  -rawMessage: "An exception has been thrown during the rendering of a template ("Parameter "productSlug" for route "product_view" must match "[a-zA-Z0-9\()-:.+_'\"/ ]+" ("MicroSDΧC Extreme 64GB V30 170" given) to generate a corresponding URL.")."
  -source: Twig\Source {#3960
    -code: """
      {% extends 'base.html.twig' %}\n
      \n
      {#{% block stylesheets %}\n
          {{ parent() }}\n
          {{ encore_entry_link_tags('home') }}\n
      {% endblock %}#}\n
      \n
      {% block javascripts %}\n
          {{ parent() }}\n
          <script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>\n
          <script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>\n
      {% endblock %}\n
      \n
      {% block body %}\n
          <div class="container">\n
              {% for key, messages in app.flashes() %}\n
                  {% for message in messages %}\n
                      <div class="alert alert-{{ key }} mt-3">\n
                          {{ message }}\n
                      </div>\n
                  {% endfor %}\n
              {% endfor %}\n
              {{ include('product/_partials/breadcrumb.html.twig') }}\n
      \n
              <div class="row">\n
                  <div class="sidebar-overlay"></div>\n
                  <div class="sidebar-toggle custom-sidebar-toggle"><i class="fas fa-sliders-h"></i></div>\n
                  <aside class="sidebar-product col-lg-3 mobile-sidebar">\n
                      {{ include('_partials/sidebar_categories.html.twig') }}\n
                  </aside><!-- End .col-md-3 -->\n
      \n
                  <div class="col-lg-9 main-content pb-2">\n
                      <div class="product-single-container product-single-default product-left-sidebar">\n
                          <div class="cart-message d-none">\n
                              <strong class="single-cart-notice">{{ product.name }}</strong>\n
                              <span>{% trans %}has been added to your cart.{% endtrans %}</span>\n
                          </div>\n
      \n
                          <div class="row">\n
                              <div class="col-lg-7 col-md-6 product-single-gallery">\n
                                  <div class="product-slider-container">\n
                                      <div class="product-single-carousel owl-carousel owl-theme show-nav-hover">\n
                                          <div class="product-item">\n
                                              <img class="product-single-image"\n
                                                   src="https://www.blk.gr/{{ product.mainImage.path }}{{ product.mainImage.name }}"\n
                                                   data-zoom-image="https://www.blk.gr/{{ product.mainImage.path }}{{ product.mainImage.name }}"\n
                                                   alt="{{ product.name }}" />\n
                                          </div>\n
                                          {% for image in product.images %}\n
                                              <div class="product-item">\n
                                                  <img class="product-single-image"\n
                                                       src="https://www.blk.gr/{{ image.path }}{{ image.name }}"\n
                                                       data-zoom-image="https://www.blk.gr/{{ image.path }}{{ image.name }}"\n
                                                       alt="{{ product.name }}" />\n
                                              </div>\n
                                          {% endfor %}\n
                                      </div>\n
                                      <!-- End .product-single-carousel -->\n
                                      <span class="prod-full-screen">\n
                                          <i class="icon-plus"></i>\n
                                      </span>\n
                                  </div>\n
      \n
                                  <div class="prod-thumbnail owl-dots">\n
                                      <div class="owl-dot">\n
                                          <img src="https://www.blk.gr/{{ product.mainImage.path }}{{ product.mainImage.name }}" width="110"\n
                                               height="auto" alt="product-thumbnail" />\n
                                      </div>\n
                                      {% for image in product.images %}\n
                                          <div class="owl-dot">\n
                                              <img src="https://www.blk.gr/{{ image.path }}{{ image.name }}" width="110"\n
                                                   height="auto" alt="product-thumbnail" />\n
                                          </div>\n
                                  {% endfor %}\n
                                  </div>\n
                              </div><!-- End .product-single-gallery -->\n
      \n
                              <div class="col-lg-5 col-md-6 product-single-details">\n
                                  <div>{{ product.manufacturer.name }} - {{ product.type.name }}</div>\n
                                  <h1 class="product-title">{{ product.name }}</h1>\n
      \n
                                  <hr class="short-divider">\n
      \n
                                  <div class="price-box">\n
                                      <span class="old-price">{{ product.priceGross.amount|in_selected_currency(product.priceGross.currency) }}</span>\n
                                      <span class="new-price">{{ product.priceWithDiscount.amount|in_selected_currency(product.priceWithDiscount.currency) }}</span>\n
                                  </div><!-- End .price-box -->\n
                                  <ul class="single-info-list">\n
                                      <!---->\n
                                      {% if product.mfrCode %}\n
                                          <li>\n
                                              MFR-CODE:\n
                                              <strong>{{ product.mfrCode }}</strong>\n
                                          </li>\n
                                      {% endif %}\n
                                      {% if product.blkCode %}\n
                                          <li>\n
                                              BLK-CODE:\n
                                              <strong>{{ product.blkCode }}</strong>\n
                                          </li>\n
                                      {% endif %}\n
                                  </ul>\n
                                  <div class="product-desc summary">\n
                                      {{ product.summary|raw }}\n
                                  </div><!-- End .product-desc -->\n
      \n
                                  <div class="product-filters-container">\n
                                      <div class="product-single-filter"><label>Color:</label>\n
                                          <ul class="config-size-list config-color-list config-filter-list">\n
                                              <li class=""><a href="javascript:;" class="filter-color border-0"\n
                                                              style="background-color: rgb(1, 136, 204);"></a></li>\n
                                              <li class=""><a href="javascript:;"\n
                                                              class="filter-color border-0 initial disabled"\n
                                                              style="background-color: rgb(221, 181, 119);"></a></li>\n
                                              <li class=""><a href="javascript:;" class="filter-color border-0"\n
                                                              style="background-color: rgb(96, 133, 165);"></a></li>\n
                                          </ul>\n
                                      </div>\n
      \n
                                      <div class="product-single-filter"><label>Size:</label>\n
                                          <ul class="config-size-list">\n
                                              <li><a href="javascript:;"\n
                                                     class="d-flex align-items-center justify-content-center">XL</a>\n
                                              </li>\n
                                              <li class=""><a href="javascript:;"\n
                                                              class="d-flex align-items-center justify-content-center">L</a>\n
                                              </li>\n
                                              <li class=""><a href="javascript:;"\n
                                                              class="d-flex align-items-center justify-content-center">M</a>\n
                                              </li>\n
                                              <li class=""><a href="javascript:;"\n
                                                              class="d-flex align-items-center justify-content-center">S</a>\n
                                              </li>\n
                                          </ul>\n
                                      </div>\n
      \n
                                      <div class="product-single-filter">\n
                                          <label></label>\n
                                          <a class="font1 text-uppercase clear-btn" href="#">Clear</a>\n
                                      </div>\n
                                      <!---->\n
                                  </div>\n
      \n
                                  <div class="product-action">\n
                                      <div class="price-box product-filtered-price">\n
                                          <del class="old-price"><span>{{ product.priceGross.amount|in_selected_currency(product.priceGross.currency) }}</span></del>\n
                                          <span class="product-price">{{ product.priceWithDiscount.amount|in_selected_currency(product.priceWithDiscount.currency) }}</span>\n
                                      </div>\n
      \n
                                      <form class="mb-0" action="{{ path('cart_add', {'id': product.id}) }}" method="post">\n
                                          <div class="product-single-qty">\n
                                              <input class="horizontal-quantity form-control" type="number" name="quantity" value="1" min="1">\n
                                          </div><!-- End .product-single-qty -->\n
      \n
                                          <button type="submit" class="btn btn-dark add-cart icon-shopping-cart mr-2" title="Add to Cart">\n
                                              {% trans %}ADD TO CART{% endtrans %}\n
                                          </button>\n
                                      </form>\n
                                  </div><!-- End .product-action -->\n
      \n
                                  <hr class="divider mb-0 mt-0">\n
      \n
                                  <div class="product-single-share mb-2">\n
                                      <label class="sr-only">Share:</label>\n
      \n
                                      <div class="social-icons mr-2">\n
                                          <a href="#" class="social-icon social-facebook icon-facebook"\n
                                             target="_blank" title="Facebook"></a>\n
                                          <a href="#" class="social-icon social-twitter icon-twitter" target="_blank"\n
                                             title="Twitter"></a>\n
                                          <a href="#" class="social-icon social-linkedin fab fa-linkedin-in"\n
                                             target="_blank" title="Linkedin"></a>\n
                                          <a href="#" class="social-icon social-gplus fab fa-google-plus-g"\n
                                             target="_blank" title="Google +"></a>\n
                                          <a href="#" class="social-icon social-mail icon-mail-alt" target="_blank"\n
                                             title="Mail"></a>\n
                                      </div><!-- End .social-icons -->\n
      \n
                                      <form class="mb-0" action="{{ path('cart_add', {'id': product.id, 'wishlist': 1}) }}" method="post">\n
                                          <a href="#" class="btn-icon-wish add-wishlist" title="Add to Wishlist">\n
                                              <i class="icon-wishlist-2"></i>\n
                                              <span>Add to Wishlist</span>\n
                                          </a>\n
                                      </form>\n
                                     {#  <button href="#" data-id="{{ product.id }}" class="btn-icon-wish add-wishlist" title="{{ app.request.attributes.get('_route') == 'wishlist_index' ? 'Remove from Wishlist' : 'Add to Wishlist' }}">\n
                                          <i class="icon-wishlist-2"></i>\n
                                          <span>{{ app.request.attributes.get('_route') == 'wishlist_index' ? 'Remove from Wishlist' : 'Add to Wishlist' }}</span>\n
                                      </button> #}\n
                                  </div><!-- End .product single-share -->\n
                              </div><!-- End .product-single-details -->\n
                          </div><!-- End .row -->\n
                      </div><!-- End .product-single-container -->\n
      \n
                      <div class="product-single-tabs">\n
                          <ul class="nav nav-tabs" role="tablist">\n
                              <li class="nav-item">\n
                                  <a class="nav-link active" id="product-tab-overview" data-toggle="tab" href="#product-overview" role="tab" aria-controls="product-overview" aria-selected="true">{% trans %}Overview{% endtrans %}</a>\n
                              </li>\n
                              <li class="nav-item">\n
                                  <a class="nav-link" id="product-tab-included" data-toggle="tab" href="#product-included" role="tab" aria-controls="product-included" aria-selected="true">{% trans %}Included{% endtrans %}</a>\n
                              </li>\n
                              <li class="nav-item">\n
                                  <a class="nav-link" id="product-tab-specifications" data-toggle="tab" href="#product-specifications" role="tab" aria-controls="product-specifications" aria-selected="false">{% trans %}Specifications{% endtrans %}</a>\n
                              </li>\n
                              <li class="nav-item">\n
                                  <a class="nav-link" id="product-tab-downloads" data-toggle="tab" href="#product-downloads" role="tab" aria-controls="product-downloads" aria-selected="false">{% trans %}Downloads{% endtrans %}</a>\n
                              </li>\n
                              <li class="nav-item">\n
                                  <a class="nav-link" id="product-tab-videos" data-toggle="tab" href="#product-videos" role="tab" aria-controls="product-videos" aria-selected="false">{% trans %}Videos{% endtrans %}</a>\n
                              </li>\n
                              <li class="nav-item">\n
                                  <a class="nav-link" id="product-tab-accessories" data-toggle="tab" href="#product-accessories" role="tab" aria-controls="product-accessories" aria-selected="false">{% trans %}Accessories{% endtrans %}</a>\n
                              </li>\n
                          </ul>\n
      \n
                          <div class="tab-content">\n
                              <div class="tab-pane fade show active" id="product-overview" role="tabpanel" aria-labelledby="product-tab-overview">\n
                                  <div class="product-overview">\n
                                      {{ product.description|raw }}\n
                                  </div><!-- End .product-overview -->\n
                              </div><!-- End .tab-pane -->\n
      \n
                              <div class="tab-pane fade" id="product-included" role="tabpanel" aria-labelledby="product-tab-included">\n
                                  <div class="product-included">\n
                                      {% for key, attribute in attributes %}\n
                                          <h3>{{ key }}</h3>\n
                                          <dl class="list-group list-group-flush mb-3">\n
                                          {% for attr_key, attr_value in attribute %}\n
                                              <dt class="list-group-item">{{ attr_key }}</dt>\n
                                              <dd class="list-group-item">\n
                                                  {% if attr_value is iterable %}\n
                                                      {% for value in attr_value %}\n
                                                          {{ value}}<br>\n
                                                      {% endfor %}\n
                                                  {% else %}\n
                                                      {{ attr_value }}\n
                                                  {% endif %}\n
                                              </dd>\n
                                          {% endfor %}\n
                                          </dl>\n
                                      {% else %}\n
                                          {% trans %}Specifications not available.{% endtrans %}\n
                                      {% endfor %}\n
                                  </div><!-- End .product-included -->\n
                              </div><!-- End .tab-pane -->\n
      \n
                              <div class="tab-pane fade summary" id="product-specifications" role="tabpanel" aria-labelledby="product-tab-specifications">\n
                                  {% if product.inTheBoxText is not empty %}\n
                                      {{ product.inTheBoxText|raw }}\n
                                  {% else %}\n
                                      {% trans %}Included not available.{% endtrans %}\n
                                  {% endif %}\n
                              </div><!-- End .tab-pane -->\n
      \n
                              <div class="tab-pane fade" id="product-downloads" role="tabpanel" aria-labelledby="product-tab-downloads">\n
                                  <div class="product-downloads">\n
                                      {#{% for key, references in grouped_references %}\n
      #}{#                                    {{ dump(constant('App\\Enum\\ProductReferenceType::Pdf.value')) }}#}{#\n
                                          {% if 'pdf' == key %}\n
                                              {% for reference in references %}\n
                                                  {{ dump(reference) }}\n
                                                  {{ reference.title }}\n
                                                  {% for pdf in reference.files %}\n
                                                      {{ dump(pdf) }}\n
                                                  {% endfor %}\n
                                              {% endfor %}\n
                                          {% endif %}\n
                                      {% endfor %}#}\n
                                      {% trans %}Pdf not available.{% endtrans %}\n
                                  </div><!-- End .product-downloads -->\n
                              </div><!-- End .tab-pane -->\n
      \n
                              <div class="tab-pane fade" id="product-videos" role="tabpanel" aria-labelledby="product-tab-videos">\n
                                  <div class="product-videos">\n
                                      {% for video in grouped_references.video %}\n
                                          <div><strong>{{ video.title }}</strong></div>\n
                                          <div class="mb-3">\n
                                              <object width="640" height="360">\n
                                                  <param name="movie" value="//www.youtube.com/v/{{ video.url }}?version=3&amp;hl=en_US"></param>\n
                                                  <param name="allowFullScreen" value="true"></param>\n
                                                  <param name="allowscriptaccess" value="always"></param>\n
                                                  <embed src="//www.youtube.com/v/{{ video.url }}?version=3&amp;hl=en_US"\n
                                                         type="application/x-shockwave-flash" width="640" height="360"\n
                                                         allowscriptaccess="always" allowfullscreen="true"></embed>\n
                                              </object>\n
                                          </div>\n
                                      {% else %}\n
                                          {% trans %}Video not available.{% endtrans %}\n
                                      {% endfor %}\n
                                  </div><!-- End .product-downloads -->\n
                              </div><!-- End .tab-pane -->\n
                              <div class="tab-pane fade" id="product-accessories" role="tabpanel" aria-labelledby="product-tab-accessories">\n
                                  <div class="product-single-collapse" id="productAccordion">\n
                                      <div class="product-collapse-panel">\n
                                          {% for key, accessory in accessories %}\n
                                              <h3 class="product-collapse-title">\n
                                                  <a class="collapsed" data-toggle="collapse" href="#product-collapse-{{ key }}"\n
                                                     role="button" aria-expanded="false" aria-controls="product-collapse-{{ key }}">{{ key }}</a>\n
                                              </h3>\n
      \n
                                              <div class="product-collapse-body collapse" id="product-collapse-{{ key }}"\n
                                                   data-parent="#productAccordion">\n
                                                  <div class="collapse-body-wrapper">\n
                                                      <div class="row">\n
                                                          {% for product in accessory %}\n
                                                              <div class="col-6 col-sm-4">\n
                                                                  <div class="product-default">\n
                                                                      <figure>\n
                                                                          <a href="{{ path('product_view', {'categorySlug': category.slug, 'productSlug': product.slug}) }}">\n
                                                                              <img src="{{ product.mainImage is not empty ? 'https://www.blk.gr/' ~ product.mainImage.path ~ product.mainImage.name : '' }}" width="280" height="280" alt="product" />\n
                                                                              {# <img src="assets/images/products/product-1-2.jpg" width="280" height="280" alt="product" /> #}\n
                                                                          </a>\n
      \n
                                                                          <div class="label-group">\n
                                                                              <div class="product-label label-hot">HOT</div>\n
                                                                              <div class="product-label label-sale">-20%</div>\n
                                                                          </div>\n
                                                                      </figure>\n
      \n
                                                                      <div class="product-details">\n
                                                                          <div class="category-wrap">\n
                                                                              <div class="manufacturer-label">\n
                                                                                  <img src="{{ asset(product.manufacturer.logo.path ~ product.manufacturer.logo.name) }}">\n
                                                                              </div>\n
                                                                          </div>\n
      \n
                                                                          <h3 class="product-title">\n
                                                                              <a href="{{ path('product_view', {'categorySlug': category.slug, 'productSlug': product.slug}) }}">{{ product.name }}</a>\n
                                                                          </h3>\n
      \n
                                                                          <div class="ratings-container">\n
                                                                              {% if product.mfrCode is not empty %}\n
                                                                                  MFR#{{ product.mfrCode }}\n
                                                                              {% endif %}\n
                                                                              {% if product.blkCode is not empty %}\n
                                                                                  &nbsp;BLK#{{ product.blkCode }}\n
                                                                              {% endif %}\n
                                                                              <!-- End .product-ratings -->\n
                                                                          </div>\n
                                                                          <!-- End .product-container -->\n
      \n
                                                                          <div class="price-box">\n
                                                                              <del class="old-price">{{ product.priceGross.amount|in_selected_currency(product.priceGross.currency) }}</del>\n
                                                                              <span class="product-price">{{ product.priceWithDiscount.amount|in_selected_currency(product.priceWithDiscount.currency) }}</span>\n
                                                                          </div>\n
                                                                          <div class="product-summary">\n
                                                                              {{ product.summary|raw }}\n
                                                                          </div>\n
      \n
                                                                          <div class="product-action">\n
                                                                              <a href="wishlist.html" class="btn-icon-wish" title="wishlist"><i\n
                                                                                          class="icon-heart"></i></a>\n
                                                                              <a href="{{ path('cart_add', {'id': product.id}) }}" class="btn-icon btn-add-cart"><i\n
                                                                                          class="fa fa-arrow-right"></i><span>{% trans %}Add to cart{% endtrans %}</span></a>\n
                                                                              <a href="ajax/product-quick-view.html" class="btn-quickview" title="Quick View"><i class="fas fa-external-link-alt"></i></a>\n
                                                                          </div>\n
                                                                      </div>\n
                                                                      <!-- End .product-details -->\n
                                                                  </div>\n
                                                              </div>\n
                                                              <!-- End .col-sm-4 -->\n
                                                          {% endfor %}\n
                                                      </div>\n
                                                      <!-- End .row -->\n
                                                  </div><!-- End .collapse-body-wrapper -->\n
                                              </div><!-- End .product-collapse-body -->\n
                                          {% endfor %}\n
                                      </div><!-- End .product-collapse-panel -->\n
      \n
                                  </div><!-- End .product-single-collapse -->\n
                              </div><!-- End .tab-pane -->\n
                          </div><!-- End .tab-content -->\n
                      </div>\n
                  </div><!-- End .col-lg-9 -->\n
              </div><!-- End .row -->\n
          </div><!-- End .container -->\n
      {% endblock %}\n
      """
    -name: "product/view.html.twig"
    -path: "/var/www/vhosts/quirky-mahavira.176-9-144-72.plesk.page/httpdocs/templates/product/view.html.twig"
  }
  -phpFile: "/var/www/vhosts/quirky-mahavira.176-9-144-72.plesk.page/httpdocs/vendor/twig/twig/src/Template.php"
  -phpLine: 460
}
  1. <div class="row">
  2. {% for product in accessory %}
  3. <div class="col-6 col-sm-4">
  4. <div class="product-default">
  5. <figure>
  6. <a href="{{ path('product_view', {'categorySlug': category.slug, 'productSlug': product.slug}) }}">
  7. <img src="{{ product.mainImage is not empty ? 'https://www.blk.gr/' ~ product.mainImage.path ~ product.mainImage.name : '' }}" width="280" height="280" alt="product" />
  8. {# <img src="assets/images/products/product-1-2.jpg" width="280" height="280" alt="product" /> #}
  9. </a>
  10. <div class="label-group">
  1. // line 30
  2. yield " </header>
  3. <main class=\"main\">
  4. ";
  5. // line 32
  6. yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
  7. // line 33
  8. yield " </main>
  9. </div>
  10. <footer class=\"footer bg-dark position-relative\">
  11. ";
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", "product/view.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/App/ProductController.php (line 138)
  1. $productAccessories = [];
  2. if ($accessories = $product->getAccessories()) {
  3. $productAccessories = $productService->initAccessories($accessories);
  4. }
  5. return $this->render('product/view.html.twig', [
  6. 'site_data' => $this->mainService->getGlobalData(),
  7. 'category' => $category,
  8. 'product' => $product,
  9. 'breadcrumb' => $productService->initBreadcrumb($category),
  10. 'attributes' => $product->getAttributes() ? $productService->initProductAttributes($product->getAttributes()) : [],
  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/quirky-mahavira.176-9-144-72.plesk.page/httpdocs/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. };

Symfony\Component\Routing\Exception\ InvalidParameterException

Parameter "productSlug" for route "product_view" must match "[a-zA-Z0-9\()-:.+_'\"/ ]+" ("MicroSDΧC Extreme 64GB V30 170" given) to generate a corresponding URL.

  1. if (!$optional || $important || !\array_key_exists($varName, $defaults) || (null !== $mergedParams[$varName] && (string) $mergedParams[$varName] !== (string) $defaults[$varName])) {
  2. // check requirement (while ignoring look-around patterns)
  3. if (null !== $this->strictRequirements && !preg_match('#^'.preg_replace('/\(\?(?:=|<=|!|<!)((?:[^()\\\\]+|\\\\.|\((?1)\))*)\)/', '', $token[2]).'$#i'.(empty($token[4]) ? '' : 'u'), $mergedParams[$token[3]] ?? '')) {
  4. if ($this->strictRequirements) {
  5. throw new InvalidParameterException(strtr($message, ['{parameter}' => $varName, '{route}' => $name, '{expected}' => $token[2], '{given}' => $mergedParams[$varName]]));
  6. }
  7. $this->logger?->error($message, ['parameter' => $varName, 'route' => $name, 'expected' => $token[2], 'given' => $mergedParams[$varName]]);
  8. return '';
  1. } elseif (!isset($parameters['_locale'])) {
  2. $parameters['_locale'] = $defaults['_locale'];
  3. }
  4. }
  5. return $this->doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
  6. }
  7. }
in vendor/symfony/routing/Router.php -> generate (line 172)
  1. $this->configCacheFactory = $configCacheFactory;
  2. }
  3. public function generate(string $name, array $parameters = [], int $referenceType = self::ABSOLUTE_PATH): string
  4. {
  5. return $this->getGenerator()->generate($name, $parameters, $referenceType);
  6. }
  7. public function match(string $pathinfo): array
  8. {
  9. return $this->getMatcher()->match($pathinfo);
  1. ];
  2. }
  3. public function getPath(string $name, array $parameters = [], bool $relative = false): string
  4. {
  5. return $this->generator->generate($name, $parameters, $relative ? UrlGeneratorInterface::RELATIVE_PATH : UrlGeneratorInterface::ABSOLUTE_PATH);
  6. }
  7. public function getUrl(string $name, array $parameters = [], bool $schemeRelative = false): string
  8. {
  9. return $this->generator->generate($name, $parameters, $schemeRelative ? UrlGeneratorInterface::NETWORK_PATH : UrlGeneratorInterface::ABSOLUTE_URL);
  1. yield " <div class=\"col-6 col-sm-4\">
  2. <div class=\"product-default\">
  3. <figure>
  4. <a href=\"";
  5. // line 309
  6. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("product_view", ["categorySlug" => CoreExtension::getAttribute($this->env, $this->source, (isset($context["category"]) || array_key_exists("category", $context) ? $context["category"] : (function () { throw new RuntimeError('Variable "category" does not exist.', 309, $this->source); })()), "slug", [], "any", false, false, false, 309), "productSlug" => CoreExtension::getAttribute($this->env, $this->source, $context["product"], "slug", [], "any", false, false, false, 309)]), "html", null, true);
  7. yield "\">
  8. <img src=\"";
  9. // line 310
  10. yield (((($tmp = !Twig\Extension\CoreExtension::testEmpty(CoreExtension::getAttribute($this->env, $this->source, $context["product"], "mainImage", [], "any", false, false, false, 310))) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ($this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((("https://www.blk.gr/" . CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["product"], "mainImage", [], "any", false, false, false, 310), "path", [], "any", false, false, false, 310)) . CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["product"], "mainImage", [], "any", false, false, false, 310), "name", [], "any", false, false, false, 310)), "html", null, true)) : (""));
  11. yield "\" width=\"280\" height=\"280\" alt=\"product\" />
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. // line 30
  2. yield " </header>
  3. <main class=\"main\">
  4. ";
  5. // line 32
  6. yield from $this->unwrap()->yieldBlock('body', $context, $blocks);
  7. // line 33
  8. yield " </main>
  9. </div>
  10. <footer class=\"footer bg-dark position-relative\">
  11. ";
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", "product/view.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/App/ProductController.php (line 138)
  1. $productAccessories = [];
  2. if ($accessories = $product->getAccessories()) {
  3. $productAccessories = $productService->initAccessories($accessories);
  4. }
  5. return $this->render('product/view.html.twig', [
  6. 'site_data' => $this->mainService->getGlobalData(),
  7. 'category' => $category,
  8. 'product' => $product,
  9. 'breadcrumb' => $productService->initBreadcrumb($category),
  10. 'attributes' => $product->getAttributes() ? $productService->initProductAttributes($product->getAttributes()) : [],
  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/quirky-mahavira.176-9-144-72.plesk.page/httpdocs/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 02:40:26 deprecation User Deprecated: The Liip\ImagineBundle\Templating\FilterTrait trait is deprecated since version 2.7 and will be removed in 3.0; use Twig instead.
{
    "exception": {}
}
INFO 02:40:26 deprecation User Deprecated: The Liip\ImagineBundle\Templating\FilterExtension class is deprecated since version 2.7 and will be removed in 3.0; configure "liip_imagine.twig.mode" to "lazy" instead.
{
    "exception": {}
}
INFO 02:40:26 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "01db11"
    },
    "request_uri": "https://www.quirky-mahavira.176-9-144-72.plesk.page/_profiler/01db11",
    "method": "GET"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 02:40:26 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 02:40:26 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Knp\\Bundle\\PaginatorBundle\\Subscriber\\SlidingPaginationSubscriber::onKernelRequest"
}
DEBUG 02:40:26 event Notified event "kernel.request" to listener "Symfony\UX\LiveComponent\EventListener\LiveComponentSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\LiveComponent\\EventListener\\LiveComponentSubscriber::onKernelRequest"
}
DEBUG 02:40:26 event Notified event "kernel.controller" to listener "Symfony\UX\LiveComponent\EventListener\LiveComponentSubscriber::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\UX\\LiveComponent\\EventListener\\LiveComponentSubscriber::onKernelController"
}
DEBUG 02:40:26 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 02:40:26 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 02:40:27 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 02:40:27 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 02:40:27 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 02:40:27 event Notified event "kernel.controller_arguments" to listener "ContainerOxIKIPQ\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerOxIKIPQ\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 02:40:27 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 ("Parameter "productSlug" for route "product_view" must match "[a-zA-Z0-9\()-:.+_'\"/ ]+" ("MicroSDΧC Extreme 64GB V30 170" given) to generate a corresponding URL.") in "product/view.html.twig" at line 309.

  at templates/product/view.html.twig:309
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/c8/c8172a34d41f25832ed786a130f85351.php:104)
  at __TwigTemplate_dacaa568eb414ad0bb5ed8c2a531abf2->doDisplay()
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield()
     (var/cache/dev/twig/fb/fb5a45a1c7ab2a97634ce1b50e38c254.php:54)
  at __TwigTemplate_4773f3f468a20c0c4db0b4658ea6b000->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/App/ProductController.php:138)
  at App\Controller\App\ProductController->view()
     (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/quirky-mahavira.176-9-144-72.plesk.page/httpdocs/vendor/autoload_runtime.php')
     (public/index.php:5)                
[1/2] InvalidParameterException
Symfony\Component\Routing\Exception\InvalidParameterException:
Parameter "productSlug" for route "product_view" must match "[a-zA-Z0-9\()-:.+_'\"/ ]+" ("MicroSDΧC Extreme 64GB V30 170" given) to generate a corresponding URL.

  at vendor/symfony/routing/Generator/UrlGenerator.php:166
  at Symfony\Component\Routing\Generator\UrlGenerator->doGenerate()
     (vendor/symfony/routing/Generator/CompiledUrlGenerator.php:69)
  at Symfony\Component\Routing\Generator\CompiledUrlGenerator->generate()
     (vendor/symfony/routing/Router.php:172)
  at Symfony\Component\Routing\Router->generate()
     (vendor/symfony/twig-bridge/Extension/RoutingExtension.php:43)
  at Symfony\Bridge\Twig\Extension\RoutingExtension->getPath()
     (var/cache/dev/twig/fb/fb5a45a1c7ab2a97634ce1b50e38c254.php:661)
  at __TwigTemplate_4773f3f468a20c0c4db0b4658ea6b000->block_body()
     (vendor/twig/twig/src/Template.php:446)
  at Twig\Template->yieldBlock()
     (var/cache/dev/twig/c8/c8172a34d41f25832ed786a130f85351.php:104)
  at __TwigTemplate_dacaa568eb414ad0bb5ed8c2a531abf2->doDisplay()
     (vendor/twig/twig/src/Template.php:402)
  at Twig\Template->yield()
     (var/cache/dev/twig/fb/fb5a45a1c7ab2a97634ce1b50e38c254.php:54)
  at __TwigTemplate_4773f3f468a20c0c4db0b4658ea6b000->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/App/ProductController.php:138)
  at App\Controller\App\ProductController->view()
     (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/quirky-mahavira.176-9-144-72.plesk.page/httpdocs/vendor/autoload_runtime.php')
     (public/index.php:5)