Exceptions
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&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&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 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 }
in
templates/product/view.html.twig
(line 309)
<div class="row">{% for product in accessory %}<div class="col-6 col-sm-4"><div class="product-default"><figure><a href="{{ path('product_view', {'categorySlug': category.slug, 'productSlug': product.slug}) }}"><img src="{{ product.mainImage is not empty ? 'https://www.blk.gr/' ~ product.mainImage.path ~ product.mainImage.name : '' }}" width="280" height="280" alt="product" />{# <img src="assets/images/products/product-1-2.jpg" width="280" height="280" alt="product" /> #}</a><div class="label-group">
in
var/cache/dev/twig/c8/c8172a34d41f25832ed786a130f85351.php
->
yieldBlock
(line 104)
// line 30yield " </header><main class=\"main\">";// line 32yield from $this->unwrap()->yieldBlock('body', $context, $blocks);// line 33yield " </main></div><footer class=\"footer bg-dark position-relative\">";
in
vendor/twig/twig/src/Template.php
->
doDisplay
(line 402)
{$context += $this->env->getGlobals();$blocks = array_merge($this->blocks, $blocks);try {yield from $this->doDisplay($context, $blocks);} catch (Error $e) {if (!$e->getSourceContext()) {$e->setSourceContext($this->getSourceContext());}
in
var/cache/dev/twig/fb/fb5a45a1c7ab2a97634ce1b50e38c254.php
->
yield
(line 54)
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "product/view.html.twig"));$this->parent = $this->load("base.html.twig", 1);yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in
vendor/twig/twig/src/Template.php
->
doDisplay
(line 402)
{$context += $this->env->getGlobals();$blocks = array_merge($this->blocks, $blocks);try {yield from $this->doDisplay($context, $blocks);} catch (Error $e) {if (!$e->getSourceContext()) {$e->setSourceContext($this->getSourceContext());}
in
vendor/twig/twig/src/Template.php
->
yield
(line 358)
return $this->blocks;}public function display(array $context, array $blocks = []): void{foreach ($this->yield($context, $blocks) as $data) {echo $data;}}public function render(array $context): string
in
vendor/twig/twig/src/Template.php
->
display
(line 373)
ob_start();} else {ob_start(function () { return ''; });}try {$this->display($context);} catch (\Throwable $e) {while (ob_get_level() > $level) {ob_end_clean();}
in
vendor/twig/twig/src/TemplateWrapper.php
->
render
(line 51)
yield from $this->template->yieldBlock($name, $context);}public function render(array $context = []): string{return $this->template->render($context);}/*** @return void*/
in
vendor/twig/twig/src/Environment.php
->
render
(line 333)
* @throws SyntaxError When an error occurred during compilation* @throws RuntimeError When an error occurred during rendering*/public function render($name, array $context = []): string{return $this->load($name)->render($context);}/*** Displays a template.*
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
render
(line 459)
if (null !== $block) {return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);}return $this->container->get('twig')->render($view, $parameters);}private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response{$content = $this->doRenderView($view, $block, $parameters, $method);
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
doRenderView
(line 464)
return $this->container->get('twig')->render($view, $parameters);}private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response{$content = $this->doRenderView($view, $block, $parameters, $method);$response ??= new Response();if (200 === $response->getStatusCode()) {foreach ($parameters as $v) {if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
doRender
(line 278)
* If an invalid form is found in the list of parameters, a 422 status code is returned.* Forms found in parameters are auto-cast to form views.*/protected function render(string $view, array $parameters = [], ?Response $response = null): Response{return $this->doRender($view, null, $parameters, $response, __FUNCTION__);}/*** Renders a block in a view.*
$productAccessories = [];if ($accessories = $product->getAccessories()) {$productAccessories = $productService->initAccessories($accessories);}return $this->render('product/view.html.twig', ['site_data' => $this->mainService->getGlobalData(),'category' => $category,'product' => $product,'breadcrumb' => $productService->initBreadcrumb($category),'attributes' => $product->getAttributes() ? $productService->initProductAttributes($product->getAttributes()) : [],
in
vendor/symfony/http-kernel/HttpKernel.php
->
view
(line 183)
$this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);$controller = $event->getController();$arguments = $event->getArguments();// call controller$response = $controller(...$arguments);// viewif (!$response instanceof Response) {$event = new ViewEvent($this, $request, $type, $response, $event);$this->dispatcher->dispatch($event, KernelEvents::VIEW);
in
vendor/symfony/http-kernel/HttpKernel.php
->
handleRaw
(line 76)
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());$this->requestStack->push($request);$response = null;try {return $response = $this->handleRaw($request, $type);} catch (\Throwable $e) {if ($e instanceof \Error && !$this->handleAllThrowables) {throw $e;}
in
vendor/symfony/http-kernel/Kernel.php
->
handle
(line 182)
$this->boot();++$this->requestStackSize;$this->resetServices = true;try {return $this->getHttpKernel()->handle($request, $type, $catch);} finally {--$this->requestStackSize;}}
in
vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php
->
handle
(line 35)
) {}public function run(): int{$response = $this->kernel->handle($this->request);if (Kernel::VERSION_ID >= 60400) {$response->send(false);if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in
vendor/autoload_runtime.php
->
run
(line 29)
$app = $app(...$args);exit($runtime->getRunner($app)->run());
require_once('/var/www/vhosts/quirky-mahavira.176-9-144-72.plesk.page/httpdocs/vendor/autoload_runtime.php')
in
public/index.php
(line 5)
<?phpuse App\Kernel;require_once dirname(__DIR__).'/vendor/autoload_runtime.php';return function (array $context) {return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);};
Symfony\Component\Routing\Exception\ InvalidParameterException
in
vendor/symfony/routing/Generator/UrlGenerator.php
(line 166)
if (!$optional || $important || !\array_key_exists($varName, $defaults) || (null !== $mergedParams[$varName] && (string) $mergedParams[$varName] !== (string) $defaults[$varName])) {// check requirement (while ignoring look-around patterns)if (null !== $this->strictRequirements && !preg_match('#^'.preg_replace('/\(\?(?:=|<=|!|<!)((?:[^()\\\\]+|\\\\.|\((?1)\))*)\)/', '', $token[2]).'$#i'.(empty($token[4]) ? '' : 'u'), $mergedParams[$token[3]] ?? '')) {if ($this->strictRequirements) {throw new InvalidParameterException(strtr($message, ['{parameter}' => $varName, '{route}' => $name, '{expected}' => $token[2], '{given}' => $mergedParams[$varName]]));}$this->logger?->error($message, ['parameter' => $varName, 'route' => $name, 'expected' => $token[2], 'given' => $mergedParams[$varName]]);return '';
in
vendor/symfony/routing/Generator/CompiledUrlGenerator.php
->
doGenerate
(line 69)
} elseif (!isset($parameters['_locale'])) {$parameters['_locale'] = $defaults['_locale'];}}return $this->doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);}}
in
vendor/symfony/routing/Router.php
->
generate
(line 172)
$this->configCacheFactory = $configCacheFactory;}public function generate(string $name, array $parameters = [], int $referenceType = self::ABSOLUTE_PATH): string{return $this->getGenerator()->generate($name, $parameters, $referenceType);}public function match(string $pathinfo): array{return $this->getMatcher()->match($pathinfo);
in
vendor/symfony/twig-bridge/Extension/RoutingExtension.php
->
generate
(line 43)
];}public function getPath(string $name, array $parameters = [], bool $relative = false): string{return $this->generator->generate($name, $parameters, $relative ? UrlGeneratorInterface::RELATIVE_PATH : UrlGeneratorInterface::ABSOLUTE_PATH);}public function getUrl(string $name, array $parameters = [], bool $schemeRelative = false): string{return $this->generator->generate($name, $parameters, $schemeRelative ? UrlGeneratorInterface::NETWORK_PATH : UrlGeneratorInterface::ABSOLUTE_URL);
in
var/cache/dev/twig/fb/fb5a45a1c7ab2a97634ce1b50e38c254.php
->
getPath
(line 661)
yield " <div class=\"col-6 col-sm-4\"><div class=\"product-default\"><figure><a href=\"";// line 309yield $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);yield "\"><img src=\"";// line 310yield (((($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)) : (""));yield "\" width=\"280\" height=\"280\" alt=\"product\" />
in
vendor/twig/twig/src/Template.php
->
block_body
(line 446)
throw new \LogicException('A block must be a method on a \Twig\Template instance.');}if (null !== $template) {try {yield from $template->$block($context, $blocks);} catch (Error $e) {if (!$e->getSourceContext()) {$e->setSourceContext($template->getSourceContext());}
in
var/cache/dev/twig/c8/c8172a34d41f25832ed786a130f85351.php
->
yieldBlock
(line 104)
// line 30yield " </header><main class=\"main\">";// line 32yield from $this->unwrap()->yieldBlock('body', $context, $blocks);// line 33yield " </main></div><footer class=\"footer bg-dark position-relative\">";
in
vendor/twig/twig/src/Template.php
->
doDisplay
(line 402)
{$context += $this->env->getGlobals();$blocks = array_merge($this->blocks, $blocks);try {yield from $this->doDisplay($context, $blocks);} catch (Error $e) {if (!$e->getSourceContext()) {$e->setSourceContext($this->getSourceContext());}
in
var/cache/dev/twig/fb/fb5a45a1c7ab2a97634ce1b50e38c254.php
->
yield
(line 54)
$__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];$__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "product/view.html.twig"));$this->parent = $this->load("base.html.twig", 1);yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));$__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);$__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
in
vendor/twig/twig/src/Template.php
->
doDisplay
(line 402)
{$context += $this->env->getGlobals();$blocks = array_merge($this->blocks, $blocks);try {yield from $this->doDisplay($context, $blocks);} catch (Error $e) {if (!$e->getSourceContext()) {$e->setSourceContext($this->getSourceContext());}
in
vendor/twig/twig/src/Template.php
->
yield
(line 358)
return $this->blocks;}public function display(array $context, array $blocks = []): void{foreach ($this->yield($context, $blocks) as $data) {echo $data;}}public function render(array $context): string
in
vendor/twig/twig/src/Template.php
->
display
(line 373)
ob_start();} else {ob_start(function () { return ''; });}try {$this->display($context);} catch (\Throwable $e) {while (ob_get_level() > $level) {ob_end_clean();}
in
vendor/twig/twig/src/TemplateWrapper.php
->
render
(line 51)
yield from $this->template->yieldBlock($name, $context);}public function render(array $context = []): string{return $this->template->render($context);}/*** @return void*/
in
vendor/twig/twig/src/Environment.php
->
render
(line 333)
* @throws SyntaxError When an error occurred during compilation* @throws RuntimeError When an error occurred during rendering*/public function render($name, array $context = []): string{return $this->load($name)->render($context);}/*** Displays a template.*
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
render
(line 459)
if (null !== $block) {return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);}return $this->container->get('twig')->render($view, $parameters);}private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response{$content = $this->doRenderView($view, $block, $parameters, $method);
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
doRenderView
(line 464)
return $this->container->get('twig')->render($view, $parameters);}private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response{$content = $this->doRenderView($view, $block, $parameters, $method);$response ??= new Response();if (200 === $response->getStatusCode()) {foreach ($parameters as $v) {if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
doRender
(line 278)
* If an invalid form is found in the list of parameters, a 422 status code is returned.* Forms found in parameters are auto-cast to form views.*/protected function render(string $view, array $parameters = [], ?Response $response = null): Response{return $this->doRender($view, null, $parameters, $response, __FUNCTION__);}/*** Renders a block in a view.*
$productAccessories = [];if ($accessories = $product->getAccessories()) {$productAccessories = $productService->initAccessories($accessories);}return $this->render('product/view.html.twig', ['site_data' => $this->mainService->getGlobalData(),'category' => $category,'product' => $product,'breadcrumb' => $productService->initBreadcrumb($category),'attributes' => $product->getAttributes() ? $productService->initProductAttributes($product->getAttributes()) : [],
in
vendor/symfony/http-kernel/HttpKernel.php
->
view
(line 183)
$this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);$controller = $event->getController();$arguments = $event->getArguments();// call controller$response = $controller(...$arguments);// viewif (!$response instanceof Response) {$event = new ViewEvent($this, $request, $type, $response, $event);$this->dispatcher->dispatch($event, KernelEvents::VIEW);
in
vendor/symfony/http-kernel/HttpKernel.php
->
handleRaw
(line 76)
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());$this->requestStack->push($request);$response = null;try {return $response = $this->handleRaw($request, $type);} catch (\Throwable $e) {if ($e instanceof \Error && !$this->handleAllThrowables) {throw $e;}
in
vendor/symfony/http-kernel/Kernel.php
->
handle
(line 182)
$this->boot();++$this->requestStackSize;$this->resetServices = true;try {return $this->getHttpKernel()->handle($request, $type, $catch);} finally {--$this->requestStackSize;}}
in
vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php
->
handle
(line 35)
) {}public function run(): int{$response = $this->kernel->handle($this->request);if (Kernel::VERSION_ID >= 60400) {$response->send(false);if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in
vendor/autoload_runtime.php
->
run
(line 29)
$app = $app(...$args);exit($runtime->getRunner($app)->run());
require_once('/var/www/vhosts/quirky-mahavira.176-9-144-72.plesk.page/httpdocs/vendor/autoload_runtime.php')
in
public/index.php
(line 5)
<?phpuse App\Kernel;require_once dirname(__DIR__).'/vendor/autoload_runtime.php';return function (array $context) {return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);};
Logs
| Level | Channel | Message |
|---|---|---|
| INFO 21:28:39 | 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 21:28:39 | 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 21:28:39 | request |
Matched route "_profiler". {
"route": "_profiler",
"route_parameters": {
"_route": "_profiler",
"_controller": "web_profiler.controller.profiler::panelAction",
"token": "340189"
},
"request_uri": "https://www.quirky-mahavira.176-9-144-72.plesk.page/_profiler/340189",
"method": "GET"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke". {
"event": "kernel.request",
"listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
|
| DEBUG 21:28:39 | 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 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest". {
"event": "kernel.request",
"listener": "Knp\\Bundle\\PaginatorBundle\\Subscriber\\SlidingPaginationSubscriber::onKernelRequest"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.request" to listener "Symfony\UX\LiveComponent\EventListener\LiveComponentSubscriber::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\UX\\LiveComponent\\EventListener\\LiveComponentSubscriber::onKernelRequest"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.controller" to listener "Symfony\UX\LiveComponent\EventListener\LiveComponentSubscriber::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\UX\\LiveComponent\\EventListener\\LiveComponentSubscriber::onKernelController"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
|
| DEBUG 21:28:39 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
|
| DEBUG 21:28:39 | 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 21:28:39 | 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 21:28:39 | 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 21:28:39 | event |
Notified event "kernel.controller_arguments" to listener "ContainerOxIKIPQ\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "ContainerOxIKIPQ\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
|
| DEBUG 21:28:39 | 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)
|