Exceptions
Exception
Twig\Error\ SyntaxError
Show exception properties
Twig\Error\SyntaxError {#1314 -lineno: 3 -rawMessage: "Unknown "get_key_page" function." -source: Twig\Source {#865 -code: """ {% extends 'base.html.twig' %}\n \n {% set head_title = get_key_page('vip_lodges') ? get_key_page('vip_lodges')['seo_title'] : 'VIP-ложи' %}\n \n {% set head_description = get_key_page('vip_lodges') ? get_key_page('vip_lodges')['seo_description'] : '' %}\n \n {% set image = absolute_url(asset('/images/vip-lodges/0.jpg')) %}\n \n {% set type = 'article' %}\n \n {% block content %}\n <div class="vip-lodges ticket-item_style">\n {# Страница не закончена #}\n <div class="container">\n {% include 'includes/breadcrumbs.html.twig' with { breadcrumbs: [{ name: 'VIP-ложи' }] } %}\n \n <div>\n <div class="subtitle-wrap">\n <h1 class="subtitle">VIP-БИЛЕТЫ</h1>\n </div>\n {% include 'includes/vip_lodges_form.html.twig' %}\n <!-- wa link block start -->\n <div class="vip-lodges__wa-link-container">\n <h3 class="wa-link-description">По всем вопросам обращайтесь к нашим менеджерам напрямую через WhatsApp</h3>\n {% include 'includes/wa_link.html.twig' with { text: 'Здравствуйте, хочу сделать заказ "VIP-ложа" на матч', textLink: 'Заказать через whatsapp' } %}\n </div>\n <!-- wa link block end -->\n <div class="vip-lodges__content">\n <div class="row vip-lodges__info-wrap vip-lodges__right">\n <div class="vip-lodges__info vip-lodges__right-info vip-lodges__info_first m_order">\n <div class="vip-lodges__info-text">\n {#\n <h2 class="vip-lodges__subtitle">\n Premium\n </h2>\n #}\n <p class="text-style">Московский «Спартак» проводит свои домашние матчи КХЛ на арене «Мегаспорт», построенной к чемпионату мира по хоккею 2007 года. Этот суперсовременный стадион оборудован местами для почетных гостей. Самой выгодной с точки зрения расположения и открывающегося из не вида является ВИП-ложа 20. Она расположена прямо по центру главной трибуны «Мегаспорта». Из нее вы не пропустите ни одного важного моменты игры любимой команды.</p>\n </div>\n </div>\n <div class="vip-lodges__info-img vip-lodges__right-img">\n <img loading="lazy" data-sizes="auto" data-src="{{ asset('build/images/vip-lodges/2.jpeg') }}" alt="Premium" class="vip-lodges__info-image image_pos40 lazyload" />\n </div>\n </div>\n \n <div class="row vip-lodges__info-wrap vip-lodges__right">\n <div class="vip-lodges__info-img">\n <img loading="lazy" data-sizes="auto" data-src="{{ asset('build/images/vip-lodges/1.jpeg') }}" alt="Platinum" class="vip-lodges__info-image lazyload image_pos36" />\n </div>\n <div class="vip-lodges__info vip-lodges__right-info">\n <div class="vip-lodges__info-text">\n {#\n <h2 class="vip-lodges__subtitle">\n Platinum\n </h2>\n #}\n <p class="text-style">К услугам гостей высокий сервис и ресторан с разнообразным меню и вкусной едой. Гости ВИП-ложи 20 имеют уникальную возможность не только вкусно поесть, но и заказать алкогольные напитки! Здесь можно провести время с максимальных комфортом в приятной компании друзей или провести деловые переговоры в свободной обстановке. Полная звукоизоляция и уютная атмосфера будут способствовать хорошему результату бизнес-встречи.</p>\n </div>\n </div>\n </div>\n \n <div class="row vip-lodges__info-wrap vip-lodges__right">\n <div class="vip-lodges__info vip-lodges__right-info m_order">\n <div class="vip-lodges__info-text">\n {#\n <h2 class="vip-lodges__subtitle">\n Silver\n </h2>\n #}\n <p class="text-style">ВИП-ложа 20 - это изолированное от остальной территории комплекса помещения. Она имеет застекленный балкон, с которого открывается идеальный обзор на хоккейную площадку. Поклонники лучшей игры с шайбой на планете могут смотреть за баталиями на льду, сидя в удобных мягких креслах. Узнать цену на места в VIP-зоне и купить билеты вы можете на нашем сайте. Вы можете купить билету в 20-ю ложу для себя и своих друзей!</p>\n </div>\n </div>\n <div class="vip-lodges__info-img vip-lodges__right-img">\n <img loading="lazy" data-sizes="auto" data-src="{{ asset('build/images/vip-lodges/5.jpg') }}" alt="Silver" class="vip-lodges__info-image lazyload" />\n </div>\n </div>\n </div>\n </div>\n \n {% include 'includes/next_matches.html.twig' %}\n </div>\n </div>\n {% endblock %}\n """ -name: "pages/vip_lodges.html.twig" -path: "/var/www/scms-client/templates/pages/vip_lodges.html.twig" } -phpFile: "/var/www/scms-client/vendor/twig/twig/src/Parser.php" -phpLine: 446 }
in
templates/pages/vip_lodges.html.twig
(line 3)
{% extends 'base.html.twig' %}{% set head_title = get_key_page('vip_lodges') ? get_key_page('vip_lodges')['seo_title'] : 'VIP-ложи' %}{% set head_description = get_key_page('vip_lodges') ? get_key_page('vip_lodges')['seo_description'] : '' %}{% set image = absolute_url(asset('/images/vip-lodges/0.jpg')) %}
in
vendor/twig/twig/src/ExpressionParser/Infix/FunctionExpressionParser.php
->
getFunction
(line 51)
return new MacroReferenceExpression($alias['node']->getNode('var'), $alias['name'], $this->parseCallableArguments($parser, $line, false), $line);}$args = $this->parseNamedArguments($parser, false);$function = $parser->getFunction($name, $line);if ($function->getParserCallable()) {$fakeNode = new EmptyNode($line);$fakeNode->setSourceContext($parser->getStream()->getSourceContext());
in
vendor/twig/twig/src/Parser.php
->
parse
(line 384)
}$token = $this->getCurrentToken();while ($token->test(Token::OPERATOR_TYPE) && ($ep = $this->parsers->getByName(InfixExpressionParserInterface::class, $token->getValue())) && $ep->getPrecedence() >= $precedence) {$this->getStream()->next();$expr = $ep->parse($this, $expr, $token);$this->checkPrecedenceDeprecations($ep, $expr);$token = $this->getCurrentToken();}return $expr;
in
vendor/twig/twig/src/TokenParser/SetTokenParser.php
->
parseExpression
(line 79)
private function parseMultitargetExpression(): Nodes{$targets = [];while (true) {$targets[] = $this->parser->parseExpression();if (!$this->parser->getStream()->nextIf(Token::PUNCTUATION_TYPE, ',')) {break;}}
in
vendor/twig/twig/src/TokenParser/SetTokenParser.php
->
parseMultitargetExpression
(line 42)
$stream = $this->parser->getStream();$names = $this->parseAssignmentExpression();$capture = false;if ($stream->nextIf(Token::OPERATOR_TYPE, '=')) {$values = $this->parseMultitargetExpression();$stream->expect(Token::BLOCK_END_TYPE);if (\count($names) !== \count($values)) {throw new SyntaxError('When using set, you must have the same number of variables and assignments.', $stream->getCurrent()->getLine(), $stream->getSourceContext());
in
vendor/twig/twig/src/Parser.php
->
parse
(line 218)
}$this->stream->next();$subparser->setParser($this);$node = $subparser->parse($token);if (!$node) {trigger_deprecation('twig/twig', '3.12', 'Returning "null" from "%s" is deprecated and forbidden by "TokenParserInterface".', $subparser::class);} else {$node->setNodeTag($subparser->getTag());$rv[] = $node;
in
vendor/twig/twig/src/Parser.php
->
subparse
(line 101)
$this->importedSymbols = [[]];$this->embeddedTemplates = [];$this->expressionRefs = new \WeakMap();try {$body = $this->subparse($test, $dropNeedle);if (null !== $this->parent && null === $body = $this->filterBodyNodes($body)) {$body = new EmptyNode();}} catch (SyntaxError $e) {
in
vendor/twig/twig/src/Environment.php
->
parse
(line 558)
{if (null === $this->parser) {$this->parser = new Parser($this);}return $this->parser->parse($stream);}/*** @return void*/
in
vendor/twig/twig/src/Environment.php
->
parse
(line 589)
* @throws SyntaxError When there was an error during tokenizing, parsing or compiling*/public function compileSource(Source $source): string{try {return $this->compile($this->parse($this->tokenize($source)));} catch (Error $e) {$e->setSourceContext($source);throw $e;} catch (\Exception $e) {throw new SyntaxError(\sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $source, $e);
in
vendor/twig/twig/src/Environment.php
->
compileSource
(line 408)
$this->cache->load($key);}if (!class_exists($cls, false)) {$source = $this->getLoader()->getSourceContext($name);$content = $this->compileSource($source);if (!isset($this->hotCache[$name])) {$this->cache->write($key, $content);$this->cache->load($key);}
in
vendor/twig/twig/src/Environment.php
->
loadTemplate
(line 370)
trigger_deprecation('twig/twig', '3.9', 'Passing a "%s" instance to "%s" is deprecated.', self::class, __METHOD__);return $name;}return new TemplateWrapper($this, $this->loadTemplate($this->getTemplateClass($name), $name));}/*** Loads a template internal representation.*
in
vendor/twig/twig/src/Environment.php
->
load
(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.*
}#[Route(path: "/vip-lodgi", name: "vip_lodges")]public function vip_lodges(): Response{return $this->render('pages/vip_lodges.html.twig');}#[Route(path: "/parkovka", name: "parking")]public function parking(): Response{
in
vendor/symfony/http-kernel/HttpKernel.php
->
vip_lodges
(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());
<?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 08:14:53 | request |
Matched route "_profiler". {
"route": "_profiler",
"route_parameters": {
"_route": "_profiler",
"_controller": "web_profiler.controller.profiler::panelAction",
"token": "99b6aa"
},
"request_uri": "https://client.ticket-cms.ru/_profiler/99b6aa?panel=exception&type=request",
"method": "GET"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke". {
"event": "kernel.request",
"listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
|
| DEBUG 08:14:53 | 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 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". {
"event": "kernel.request",
"listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". {
"event": "kernel.controller",
"listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
|
| DEBUG 08:14:53 | 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 08:14:53 | 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 08:14:53 | 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 08:14:53 | event |
Notified event "kernel.controller_arguments" to listener "ContainerW7JX4pZ\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "ContainerW7JX4pZ\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
|
| DEBUG 08:14:53 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments". {
"event": "kernel.controller_arguments",
"listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}
|
Stack Trace
|
SyntaxError
|
|---|
Twig\Error\SyntaxError:
Unknown "get_key_page" function in "pages/vip_lodges.html.twig" at line 3.
at templates/pages/vip_lodges.html.twig:3
at Twig\Parser->getFunction()
(vendor/twig/twig/src/ExpressionParser/Infix/FunctionExpressionParser.php:51)
at Twig\ExpressionParser\Infix\FunctionExpressionParser->parse()
(vendor/twig/twig/src/Parser.php:384)
at Twig\Parser->parseExpression()
(vendor/twig/twig/src/TokenParser/SetTokenParser.php:79)
at Twig\TokenParser\SetTokenParser->parseMultitargetExpression()
(vendor/twig/twig/src/TokenParser/SetTokenParser.php:42)
at Twig\TokenParser\SetTokenParser->parse()
(vendor/twig/twig/src/Parser.php:218)
at Twig\Parser->subparse()
(vendor/twig/twig/src/Parser.php:101)
at Twig\Parser->parse()
(vendor/twig/twig/src/Environment.php:558)
at Twig\Environment->parse()
(vendor/twig/twig/src/Environment.php:589)
at Twig\Environment->compileSource()
(vendor/twig/twig/src/Environment.php:408)
at Twig\Environment->loadTemplate()
(vendor/twig/twig/src/Environment.php:370)
at Twig\Environment->load()
(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/Web/PageController.php:33)
at App\Controller\Web\PageController->vip_lodges()
(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/scms-client/vendor/autoload_runtime.php')
(public/index.php:5)
|