Error 500 Internal Server Error

GET https://www.collegiens-citoyens.francas40.fr/webapp/articles/584

Exceptions

Impossible to access an attribute ("id") on a null variable in webapp/articles/show.html.twig at line 61.

Exception

Twig\Error\ RuntimeError

Show exception properties
Twig\Error\RuntimeError {#2197
  -lineno: 61
  -columnno: null
  -rawMessage: "Impossible to access an attribute ("id") on a null variable."
  -source: Twig\Source {#1396
    -code: """
      {% extends 'base.html.twig' %}\n
      \n
      {% block title %}{{ article.title }}{% endblock %}\n
      \n
      {% block main %}\n
          <section class="mx-auto max-w-7xl px-2 py-2 sm:px-6 lg:px-8" id="article_page">\n
      \n
              {% include 'composants/modules/breadcrumb.html.twig' with {\n
                  'level_1': {\n
                      'title': article.etablissement ? article.etablissement.name : 'Articles',\n
                      'href': article.etablissement\n
                          ? path('op_webapp_etablissement_show2', {'id': article.etablissement.id})\n
                          : path('op_webapp_article_all_by_etablissement')\n
                  },\n
                  'level_2': {\n
                      'title': article.title,\n
                      'href': '#'\n
                  }\n
              } %}\n
      \n
              <section class="relative mt-4 overflow-hidden rounded-2xl bg-gray-200 shadow-sm" id="article_hero">\n
                  {% if article.imageName %}\n
                      <img\n
                          src="{{ asset(article_image_url(article)) | imagine_filter('thumb_bandeau_article') }}"\n
                          alt="{{ article.title }}"\n
                          class="h-64 w-full object-cover sm:h-80"\n
                      />\n
                  {% else %}\n
                      <img\n
                          src="{{ asset('/uploads/images/config/' ~ config.headerName) }}"\n
                          alt="{{ article.title }}"\n
                          class="h-64 w-full object-cover sm:h-80"\n
                      />\n
                  {% endif %}\n
      \n
                  <div class="absolute inset-0 bg-gradient-to-t from-black/70 via-black/20 to-transparent"></div>\n
      \n
                  <div class="absolute inset-x-0 bottom-0 p-4 sm:p-6 lg:px-8">\n
                      {% if article.theme %}\n
                          <span class="inline-block rounded-full bg-[#ffd100] px-3 py-1 text-xs font-semibold text-gray-900">\n
                              {{ article.theme.name }}\n
                          </span>\n
                      {% endif %}\n
                      {% if article.isTitleShow is not same as(false) %}\n
                          <h1 class="mt-2 text-2xl font-bold text-white drop-shadow-sm sm:text-3xl">{{ article.title }}</h1>\n
                      {% endif %}\n
                  </div>\n
      \n
      \n
              </section>\n
      \n
              <div class="mt-4 flex items-center gap-x-4 text-xs">\n
                  {% if article.updatedAt %}\n
                      <time datetime="{{ article.updatedAt|date('Y-m-d') }}" class="text-gray-500">{{ article.updatedAt|date('d/m/Y') }}</time>\n
                  {% endif %}\n
              </div>\n
      \n
              <article class="prose max-w-none py-4">\n
                  {{ article.content|raw }}\n
      \n
                  {% if article.support.id == 1 %}\n
                      <h4 class="font-normal text-xl text-gray-700 mt-6 mb-3">Ecouter l'émission radio</h4>\n
                      <div class="flex items-center gap-4 bg-white/90 border border-slate-200 rounded-3xl shadow-sm p-4 max-w-xl">\n
      \n
                          <!-- Bouton Play -->\n
                          <button id="playBtn" class="size-12 rounded-full bg-[#d84519] text-white grid place-content-center text-xl shadow-md hover:bg-[#F26438] transition">\n
      \n
                          </button>\n
      \n
                          <!-- Bloc central -->\n
                          <div class="flex-1 min-w-0">\n
      \n
                              <!-- TITRE -->\n
                              <div class="mb-2">\n
                                  <div id="mp3Title" class="text-slate-900 font-semibold truncate">\n
                                      {{ article.doc }}\n
                                  </div>\n
                                  <!-- Sous-titre optionnel -->\n
                                  <div id="mp3Artist" class="text-slate-500 text-xs truncate hidden">\n
                                      Source / Auteur\n
                                  </div>\n
                              </div>\n
      \n
                              <!-- Infos temps -->\n
                              <div class="flex justify-between text-sm text-slate-600 mb-1">\n
                                  <span id="currentTime">0:00</span>\n
                                  <span id="duration">0:00</span>\n
                              </div>\n
      \n
                              <!-- Barre de progression -->\n
                              <div id="rail" class="relative h-2 bg-slate-200 rounded-full cursor-pointer">\n
                                  <div id="played" class="absolute h-2 bg-[#d84519] rounded-full left-0 top-0 w-[0%]"></div>\n
                                  <div id="thumb"\n
                                       class="absolute -top-1.5 size-4 bg-white border border-[#d84519] rounded-full shadow -translate-x-1/2 cursor-pointer"\n
                                       style="left: 0%;">\n
                                  </div>\n
                              </div>\n
                          </div>\n
      \n
                          <!-- Volume -->\n
                          <input id="volume" type="range" min="0" max="1" step="0.01"\n
                                 class="w-24 accent-[#d84519]" value="1">\n
                      </div>\n
      \n
                      <audio id="audio" src="{{ asset(article_doc_url(article)) }}" preload="metadata"></audio>\n
      \n
                  {% elseif article.support.id == 2 %}\n
                      <h4 class="font-normal text-xl text-gray-700 mt-6 mb-3">Visionner la vidéo</h4>\n
                      <div class="shadow shadow-slate-300 m-2" id="content_support">\n
                          <video controls class="mx-auto block w-3/4">\n
                              <source src="{{ asset(article_doc_url(article)) }}" type="video/mp4">\n
                              <p>Votre navigateur ne prend pas en charge les vidéos HTML5.\n
                                  Voici <a href="{{ asset(article_doc_url(article)) }}">un lien pour télécharger la vidéo sur votre ordinateur</a>.</p>\n
                          </video>\n
                      </div>\n
                  {% elseif article.support.id == 3 %}\n
                      <div id="content_support">\n
                          <p>\n
                              En cliquant sur le lien suivant, vous pourrez télécharger notre document au format "Pdf" au "Doc" : <a href="{{ asset(article_doc_url(article)) }}"><i class="fa-duotone fa-file-pdf fa-2x"></i> Télécharger le fichier</a>\n
                          </p>\n
                      </div>\n
                  {% endif %}\n
              </article>\n
      \n
      \n
      \n
              {% if article.etablissement %}\n
                  <div class="mt-8 flex items-center gap-x-4 border-t border-gray-900/5 pt-6">\n
                      {% if article.etablissement.logoName %}\n
                          <img\n
                              src="{{ asset(etablissement_logo_url(article.etablissement)) | imagine_filter('thumb_logo_etablissement') }}"\n
                              alt="Logo de {{ article.etablissement.name }}"\n
                              class="size-12 rounded-full bg-gray-50 object-cover"\n
                          />\n
                      {% else %}\n
                          <img\n
                              src="{{ asset('/uploads/images/config/' ~ config.vignetteName) }}"\n
                              alt="Logo de {{ article.etablissement.name }}"\n
                              class="size-12 rounded-full bg-gray-50 object-cover"\n
                          />\n
                      {% endif %}\n
                      <div class="text-sm/6">\n
                          {% if article.etablissement.animateur %}\n
                              <p class="font-semibold text-gray-900">{{ article.etablissement.animateur }}</p>\n
                          {% endif %}\n
                          <p class="text-gray-600">\n
                              <a href="{{ path('op_webapp_etablissement_show2', {'id': article.etablissement.id}) }}" class="hover:text-[#d84519]">\n
                                  Établissement {{ article.etablissement.name }}\n
                              </a>\n
                          </p>\n
                      </div>\n
                  </div>\n
              {% endif %}\n
      \n
              {% if is_granted('ROLE_USER') %}\n
                  <div class="mt-8 border-t border-gray-900/5 pt-6" id="Article_comments">\n
                      {{ render(controller('App\\Controller\\Webapp\\CommentController::new')) }}\n
                  </div>\n
              {% endif %}\n
      \n
          </section>\n
      {% endblock %}\n
      """
    -name: "webapp/articles/show.html.twig"
    -path: "/app/templates/webapp/articles/show.html.twig"
  }
  -phpFile: "/app/vendor/twig/twig/src/Extension/CoreExtension.php"
  -phpLine: 1759
}
  1. </div>
  2. <article class="prose max-w-none py-4">
  3. {{ article.content|raw }}
  4. {% if article.support.id == 1 %}
  5. <h4 class="font-normal text-xl text-gray-700 mt-6 mb-3">Ecouter l'émission radio</h4>
  6. <div class="flex items-center gap-4 bg-white/90 border border-slate-200 rounded-3xl shadow-sm p-4 max-w-xl">
  7. <!-- Bouton Play -->
  8. <button id="playBtn" class="size-12 rounded-full bg-[#d84519] text-white grid place-content-center text-xl shadow-md hover:bg-[#F26438] transition">
  1. yield (string) CoreExtension::getAttribute($this->env, $this->source, (isset($context["article"]) || array_key_exists("article", $context) ? $context["article"] : (function () { throw new RuntimeError('Variable "article" does not exist.', 59, $this->source); })()), "content", [], "any", false, false, false, 59);
  2. yield "
  3. ";
  4. // line 61
  5. if ((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["article"]) || array_key_exists("article", $context) ? $context["article"] : (function () { throw new RuntimeError('Variable "article" does not exist.', 61, $this->source); })()), "support", [], "any", false, false, false, 61), "id", [], "any", false, false, false, 61) == 1)) {
  6. // line 62
  7. yield " <h4 class=\"font-normal text-xl text-gray-700 mt-6 mb-3\">Ecouter l\x27émission radio</h4>
  8. <div class=\"flex items-center gap-4 bg-white/90 border border-slate-200 rounded-3xl shadow-sm p-4 max-w-xl\">
  9. <!-- Bouton Play -->
in vendor/twig/twig/src/Template.php -> block_main (line 458)
  1. }
  2. if (null !== $template) {
  3. try {
  4. $template->ensureSecurityChecked();
  5. yield from $template->$block($context, $blocks);
  6. } catch (Error $e) {
  7. if (!$e->getSourceContext()) {
  8. $e->setSourceContext($template->getSourceContext());
  9. }
  1. // line 34
  2. yield " </header>
  3. <main>
  4. ";
  5. // line 36
  6. yield from $this->unwrap()->yieldBlock('main', $context, $blocks);
  7. // line 38
  8. yield " <section id=\"spinner\" class=\"hidden\">
  9. <div class=\"d-flex justify-content-center align-items-center\">
  10. <div>Veuillez patienter ... &nbsp;</div>
  11. <div class=\"spinner-border\" role=\"status\">
in vendor/twig/twig/src/Template.php -> doDisplay (line 411)
  1. $context += $this->env->getGlobals();
  2. $blocks = array_merge($this->blocks, $blocks);
  3. try {
  4. $this->ensureSecurityChecked();
  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", "webapp/articles/show.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 411)
  1. $context += $this->env->getGlobals();
  2. $blocks = array_merge($this->blocks, $blocks);
  3. try {
  4. $this->ensureSecurityChecked();
  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 381)
  1. ob_start();
  2. } else {
  3. ob_start(static 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('webapp/articles/show.html.twig', array('article' => object(Article), 'config' => object(Config))) in src/Controller/Webapp/ArticleController.php (line 436)
  1. #[Route(path: '/webapp/articles/{id}', name: 'op_webapp_articles_show', methods: ['GET'])]
  2. public function show(Article $article, EntityManagerInterface $entityManager): Response
  3. {
  4. $config = $entityManager->getRepository(Config::class)->find(1);
  5. return $this->render('webapp/articles/show.html.twig', [
  6. 'article' => $article,
  7. 'config' => $config,
  8. ]);
  9. }
  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. if (!$this->handlingHttpCache) {
  2. $this->resetServices = true;
  3. }
  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. $response->send(false);
  7. if (\function_exists('fastcgi_finish_request') && !$this->debug) {
  8. fastcgi_finish_request();
in vendor/autoload_runtime.php -> run (line 32)
  1. $app = $app(...$args);
  2. exit(
  3. $runtime
  4. ->getRunner($app)
  5. ->run()
  6. );
require_once('/app/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 static function (array $context) {
  5. return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  6. };

Logs

Level Channel Message
INFO 22:04:35 deprecation User Deprecated: Class "Doctrine\ORM\Proxy\Autoloader" is deprecated. Use native lazy objects instead. (Autoloader.php:74 called by DoctrineBundle.php:136, https://github.com/doctrine/orm/pull/12005, package doctrine/orm)
{
    "exception": {}
}
INFO 22:04:35 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "d626f5"
    },
    "request_uri": "https://www.collegiens-citoyens.francas40.fr/_profiler/d626f5",
    "method": "GET"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke".
{
    "event": "kernel.request",
    "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 22:04:35 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 22:04:35 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 22:04:35 event Notified event "kernel.request" to listener "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Knp\\Bundle\\PaginatorBundle\\Subscriber\\SlidingPaginationSubscriber::onKernelRequest"
}
DEBUG 22:04:35 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 22:04:35 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 22:04:35 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\IsSignatureValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\IsSignatureValidAttributeListener::onKernelControllerArguments"
}
DEBUG 22:04:35 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 22:04:35 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 22:04:35 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 22:04:35 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 22:04:35 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

RuntimeError
Twig\Error\RuntimeError:
Impossible to access an attribute ("id") on a null variable in "webapp/articles/show.html.twig" at line 61.

  at templates/webapp/articles/show.html.twig:61
  at Twig\Extension\CoreExtension::getAttribute(object(Environment), object(Source), null, 'id', array(), 'any', false, false, false, 61)
     (var/cache/dev/twig/a4/a4cd983fd647240a4b7f7ec23c918df0.php:199)
  at __TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52->block_main(array('article' => object(Article), 'config' => object(Config), 'app' => object(AppVariable), 'frankenphp_hot_reload' => null), array('title' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_stylesheets'), 'javascripts' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_javascripts'), 'header' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_header'), 'mainnav' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_mainnav'), 'main' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_main'), 'Modals' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_Modals'), 'footer' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_footer')))
     (vendor/twig/twig/src/Template.php:458)
  at Twig\Template->yieldBlock('main', array('article' => object(Article), 'config' => object(Config), 'app' => object(AppVariable), 'frankenphp_hot_reload' => null), array('title' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_stylesheets'), 'javascripts' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_javascripts'), 'header' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_header'), 'mainnav' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_mainnav'), 'main' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_main'), 'Modals' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_Modals'), 'footer' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_footer')))
     (var/cache/dev/twig/c3/c398c3edde0c0a2b6f87538deeac37ec.php:106)
  at __TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa->doDisplay(array('article' => object(Article), 'config' => object(Config), 'app' => object(AppVariable), 'frankenphp_hot_reload' => null), array('title' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_stylesheets'), 'javascripts' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_javascripts'), 'header' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_header'), 'mainnav' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_mainnav'), 'main' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_main'), 'Modals' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_Modals'), 'footer' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_footer')))
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield(array('article' => object(Article), 'config' => object(Config), 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_stylesheets'), 'javascripts' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_javascripts'), 'header' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_header'), 'mainnav' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_mainnav'), 'main' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_main'), 'Modals' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_Modals'), 'footer' => array(object(__TwigTemplate_ad97d494af55d8efd27ef0d2e515b2fa), 'block_footer')))
     (var/cache/dev/twig/a4/a4cd983fd647240a4b7f7ec23c918df0.php:55)
  at __TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52->doDisplay(array('article' => object(Article), 'config' => object(Config), 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_title'), 'main' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_main')))
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield(array('article' => object(Article), 'config' => object(Config), 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_title'), 'main' => array(object(__TwigTemplate_16d00a0b191f2edf589c5d3ad7c7fe52), 'block_main')))
     (vendor/twig/twig/src/Template.php:366)
  at Twig\Template->display(array('article' => object(Article), 'config' => object(Config)))
     (vendor/twig/twig/src/Template.php:381)
  at Twig\Template->render(array('article' => object(Article), 'config' => object(Config)))
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render(array('article' => object(Article), 'config' => object(Config)))
     (vendor/twig/twig/src/Environment.php:333)
  at Twig\Environment->render('webapp/articles/show.html.twig', array('article' => object(Article), 'config' => object(Config)))
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:467)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView('webapp/articles/show.html.twig', null, array('article' => object(Article), 'config' => object(Config)), 'render')
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:472)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender('webapp/articles/show.html.twig', null, array('article' => object(Article), 'config' => object(Config)), null, 'render')
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:284)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render('webapp/articles/show.html.twig', array('article' => object(Article), 'config' => object(Config)))
     (src/Controller/Webapp/ArticleController.php:436)
  at App\Controller\Webapp\ArticleController->show(object(Article), object(EntityManager))
     (vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (vendor/symfony/http-kernel/Kernel.php:193)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:34)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:32)
  at require_once('/app/vendor/autoload_runtime.php')
     (public/index.php:5)