Exceptions
Exception
Twig\Error\ SyntaxError
Show exception properties
Twig\Error\SyntaxError {#1476 -lineno: 58 -rawMessage: "Unexpected end of template." -source: Twig\Source {#833 -code: """ {% extends 'base.html.twig' %}\n \n {% block title %}Administration des audits incendie{% endblock %}\n \n {% block body %}\n <div class="container">\n <div class="row">\n {% include "_partials/_adminnav.html.twig" %}\n <main class="col-9 border border-light bg-white p-2">\n <h1>Audit incendie</h1>\n \n {# Flash messages #}\n {% for message in app.flashes('success') %}\n <div class="alert alert-success alert-dismissible fade show">\n {{ message }}\n <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>\n </div>\n {% endfor %}\n \n {% for message in app.flashes('error') %}\n <div class="alert alert-danger alert-dismissible fade show">\n {{ message }}\n <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>\n </div>\n {% endfor %}\n \n <table class="table table-hover">\n <thead class="table-light">\n <tr>\n <th>Nom de l'audit</th>\n <th>Image</th>\n <th>Description</th>\n <th>Actions</th>\n </tr>\n </thead>\n <tbody>\n {% for auditIncendie in auditIncendie %}\n <tr>\n <td>{{ auditIncendie.nameAuditIncendie }}</td>\n <td>\n <img class="img-thumbnail" style="max-width: 100px;" \n src="{{ asset('uploads/auditIncendie/' ~ auditIncendie.imgAuditIncendie) }}" \n alt="{{ auditIncendie.seoAuditIncendie }}">\n </td>\n <td>{{ auditIncendie.descriptionAuditIncendie|raw|u.truncate(100, '...') }}</td>\n <td>\n <div class="btn-group" role="group">\n <a href="{{ path('app_admin_audit_incendie_edit', {id: auditIncendie.id}) }}" \n class="btn btn-sm btn-outline-primary">\n <i class="fas fa-edit"></i>\n </a>\n <button type="button" \n class="btn btn-sm btn-outline-danger" \n data-bs-toggle="modal" \n data-bs-target="#deleteModal"\n data-delete-url="{{ path('app_admin_audit_incendie_delete', {id: auditIncendie.id}) }}"\n data-audit-name="{{ auditIncendie.nameAuditIncendie }}"\n data-csrf-token="{{ csrf_token('delete' ~ auditIncendie.id) }}">\n <i class="fas fa-trash-alt"></i>\n </button>\n </div>\n </td>\n """ -name: "admin/auditIncendie/index.html.twig" -path: "/var/www/mh_conseil_hse/templates/admin/auditIncendie/index.html.twig" } -phpFile: "/var/www/mh_conseil_hse/vendor/twig/twig/src/TokenStream.php" -phpLine: 56 }
in
templates/admin/auditIncendie/index.html.twig
(line 58)
data-bs-toggle="modal"
data-bs-target="#deleteModal"
data-id="{{ auditIncendie.id }}"
data-name="{{ auditIncendie.nameAuditIncendie }}"
data-token="{{ csrf_token('delete' ~ auditIncendie.id) }}">
<i class="fas fa-trash-alt"></i> Supprimer
</button>
</div>
</td>
</tr>
{% endfor %}
in
vendor/twig/twig/src/TokenParser/ForTokenParser.php
->
next
(line 44)
$stream->expect(Token::OPERATOR_TYPE, 'in');
$seq = $this->parser->parseExpression();
$stream->expect(Token::BLOCK_END_TYPE);
$body = $this->parser->subparse([$this, 'decideForFork']);
if ('else' == $stream->next()->getValue()) {
$elseLineno = $stream->getCurrent()->getLine();
$stream->expect(Token::BLOCK_END_TYPE);
$else = new ForElseNode($this->parser->subparse([$this, 'decideForEnd'], true), $elseLineno);
} else {
$else = null;
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/TokenParser/BlockTokenParser.php
->
subparse
(line 46)
$this->parser->setBlock($name, $block = new BlockNode($name, new EmptyNode(), $lineno));
$this->parser->pushLocalScope();
$this->parser->pushBlockStack($name);
if ($stream->nextIf(Token::BLOCK_END_TYPE)) {
$body = $this->parser->subparse([$this, 'decideBlockEnd'], true);
if ($token = $stream->nextIf(Token::NAME_TYPE)) {
$value = $token->getValue();
if ($value != $name) {
throw new SyntaxError(\sprintf('Expected endblock for block "%s" (but "%s" given).', $name, $value), $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('/', name: 'index', methods: ['GET'])]
public function index(AuditIncendieRepository $auditIncendieRepository): Response
{
$auditIncendie = $auditIncendieRepository->findAll();
return $this->render('admin/auditIncendie/index.html.twig', [
'auditIncendie' => $auditIncendie,
]);
}
#[Route('/ajout', name: 'add', methods: ['GET', 'POST'])]
in
vendor/symfony/http-kernel/HttpKernel.php
->
index
(line 183)
$this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);
$controller = $event->getController();
$arguments = $event->getArguments();
// call controller
$response = $controller(...$arguments);
// view
if (!$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()
);
<?php
use 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:46:19 | request |
Matched route "_profiler". { "route": "_profiler", "route_parameters": { "_route": "_profiler", "_controller": "web_profiler.controller.profiler::panelAction", "token": "17b078" }, "request_uri": "http://141.ip-37-59-116.eu/_profiler/17b078?panel=exception&type=request", "method": "GET" } |
DEBUG 21:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | event |
Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest" } |
DEBUG 21:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | 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:46:19 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestPayloadValueResolver::onKernelControllerArguments". { "event": "kernel.controller_arguments", "listener": "Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver::onKernelControllerArguments" } |
DEBUG 21:46:19 | 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: Unexpected end of template in "admin/auditIncendie/index.html.twig" at line 58. at templates/admin/auditIncendie/index.html.twig:58 at Twig\TokenStream->next() (vendor/twig/twig/src/TokenParser/ForTokenParser.php:44) at Twig\TokenParser\ForTokenParser->parse() (vendor/twig/twig/src/Parser.php:218) at Twig\Parser->subparse() (vendor/twig/twig/src/TokenParser/BlockTokenParser.php:46) at Twig\TokenParser\BlockTokenParser->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/Admin/AuditIcendieController.php:39) at App\Controller\Admin\AuditIcendieController->index() (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/mh_conseil_hse/vendor/autoload_runtime.php') (public/index.php:5) |