Error 500 Internal Server Error

GET https://fin.dostavka24.by/financial-planning/tb/distribution

Exceptions

Impossible to access an attribute ("userIdentifier") on a null variable in base.html.twig at line 112.

Exception

Twig\Error\ RuntimeError

Show exception properties
Twig\Error\RuntimeError {#550
  -lineno: 112
  -rawMessage: "Impossible to access an attribute ("userIdentifier") on a null variable."
  -source: Twig\Source {#486
    -code: """
      <!DOCTYPE html>\n
      <html>\n
          <head>\n
              <meta charset="UTF-8">\n
              <meta name="viewport" content="width=device-width, initial-scale=1.0">\n
              <title>{% block title %}Finance App{% endblock %}</title>\n
              <link rel="preconnect" href="https://fonts.googleapis.com">\n
              <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>\n
              <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">\n
              <script src="{{ asset('tailwindcss.js') }}"></script>\n
              <script>\n
                  tailwind.config = {\n
                      theme: {\n
                          extend: {\n
                              fontFamily: {\n
                                  sans: ['Inter', 'system-ui', 'sans-serif'],\n
                              },\n
                              colors: {\n
                                  brand: {\n
                                      50: '#ecfdf5',\n
                                      100: '#d1fae5',\n
                                      200: '#a7f3d0',\n
                                      300: '#6ee7b7',\n
                                      400: '#34d399',\n
                                      500: '#10b981',\n
                                      600: '#059669',\n
                                      700: '#047857',\n
                                      800: '#065f46',\n
                                      900: '#064e3b',\n
                                  }\n
                              }\n
                          }\n
                      }\n
                  }\n
              </script>\n
              <style type="text/tailwindcss">\n
                  @layer base {\n
                      body { @apply bg-gray-100 text-gray-900 antialiased; }\n
      \n
                      input[type="checkbox"]:not(.sr-only):not(.peer) {\n
                          -webkit-appearance: none;\n
                          appearance: none;\n
                          width: 1rem;\n
                          height: 1rem;\n
                          border: 1px solid #E5E7EB;\n
                          border-radius: 0.25rem;\n
                          background-color: #fff;\n
                          cursor: pointer;\n
                          display: inline-grid;\n
                          place-content: center;\n
                          vertical-align: middle;\n
                      }\n
      \n
                      input[type="checkbox"]:not(.sr-only):not(.peer):checked {\n
                          background-color: #10b981;\n
                          border-color: #10b981;\n
                      }\n
      \n
                      input[type="checkbox"]:not(.sr-only):not(.peer)::before {\n
                          content: "";\n
                          width: 0.5rem;\n
                          height: 0.5rem;\n
                          transform: scale(0);\n
                          transition: 120ms transform ease-in-out;\n
                          box-shadow: inset 1em 1em #fff;\n
                          transform-origin: center;\n
                          clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);\n
                      }\n
      \n
                      input[type="checkbox"]:not(.sr-only):not(.peer):checked::before {\n
                          transform: scale(1);\n
                      }\n
      \n
                      input[type="checkbox"]:not(.sr-only):not(.peer):focus-visible {\n
                          outline: 2px solid #a7f3d0;\n
                          outline-offset: 2px;\n
                      }\n
                  }\n
              </style>\n
              <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>💰</text></svg>">\n
              {% block stylesheets %}{% endblock %}\n
              <link rel="stylesheet" href="{{ asset('css/tables.css') }}?v=2">\n
          </head>\n
          <body class="min-h-screen">\n
              {# Mobile sidebar overlay #}\n
              <div id="sidebar-overlay" class="fixed inset-0 bg-black/50 z-40 hidden lg:hidden" onclick="toggleSidebar()"></div>\n
      \n
              {# Sidebar #}\n
              <aside id="sidebar" class="fixed top-0 left-0 z-50 h-full w-72 bg-white border-r border-gray-200 transform -translate-x-full lg:translate-x-0 transition-transform duration-200 ease-in-out flex flex-col">\n
                  <div class="h-16 flex items-center px-6 border-b border-gray-200">\n
                      <a href="{{ path('app_home') }}" class="flex items-center gap-2">\n
                          <span class="text-xl font-bold text-emerald-600">FINANCE</span>\n
                          <span class="text-brand-400 font-bold">24</span>\n
                      </a>\n
                  </div>\n
      \n
                  {{ knp_menu_render('main', {'template': 'menu/main_menu.html.twig'}) }}\n
              </aside>\n
      \n
              {# Main content wrapper #}\n
              <div id="main-wrapper" class="flex flex-col min-h-screen lg:ml-72 transition-all duration-200">\n
                  {# Top bar #}\n
                  <header class="h-16 bg-white border-b border-gray-200 flex items-center justify-between px-4 lg:px-8 sticky top-0 z-30">\n
                      <button type="button" onclick="toggleSidebar()" class="p-2 rounded-lg text-gray-500 hover:bg-gray-100 hover:text-gray-700 transition">\n
                          <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg>\n
                      </button>\n
      \n
                      <div class="ml-auto flex items-center gap-4">\n
                          <div class="relative" id="user-menu">\n
                              <button type="button" onclick="toggleUserMenu()" class="flex items-center gap-3 p-2 rounded-lg hover:bg-gray-100 transition">\n
                                  <div class="text-right hidden sm:block">\n
                                      <div class="text-sm font-semibold text-gray-900">{{ app.user.fullName|default(app.user.userIdentifier) }}</div>\n
                                      <div class="text-xs text-gray-500">{{ app.user.userIdentifier }}</div>\n
                                  </div>\n
                                  <div class="w-9 h-9 rounded-full bg-brand-100 text-emerald-700 flex items-center justify-center font-semibold text-sm">\n
                                      {{ app.user.firstName|first|upper }}{{ app.user.lastName|first|upper }}\n
                                  </div>\n
                                  <svg class="w-4 h-4 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg>\n
                              </button>\n
      \n
                              <div id="user-dropdown" class="absolute right-0 mt-2 w-48 bg-white rounded-xl shadow-lg border border-gray-200 py-1 hidden origin-top-right">\n
                                  <a href="#" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 transition">Профиль</a>\n
                                  <div class="border-t border-gray-100 my-1"></div>\n
                                  <a href="{{ path('app_logout') }}" class="block px-4 py-2 text-sm text-red-600 hover:bg-gray-100 transition">Выйти</a>\n
                              </div>\n
                          </div>\n
                      </div>\n
                  </header>\n
      \n
                  {# Page content #}\n
                  <main class="flex-1 p-4 lg:p-8">\n
                      {% block body %}{% endblock %}\n
                  </main>\n
              </div>\n
      \n
              {# Toast notifications #}\n
              <div id="toast-container" class="fixed top-4 right-4 z-[60] flex flex-col gap-3 w-full max-w-md pointer-events-none">\n
                  {% for type, messages in app.flashes %}\n
                      {% for message in messages %}\n
                          {% set title = message.title|default(null) %}\n
                          {% set body = message.message|default(message) %}\n
                          {% set isSuccess = type == 'success' %}\n
                          {% set bgClass = isSuccess ? 'bg-emerald-600' : 'bg-red-600' %}\n
                          {% set iconBgClass = isSuccess ? 'bg-white/20' : 'bg-white/20' %}\n
      \n
                          <div class="toast pointer-events-auto {{ bgClass }} text-white rounded-2xl shadow-lg px-4 py-4 flex items-start gap-4 transform transition-all duration-300 translate-x-0 opacity-100" role="alert" data-autohide="5000">\n
                              <div class="flex-shrink-0 w-10 h-10 {{ iconBgClass }} rounded-full flex items-center justify-center">\n
                                  {% if isSuccess %}\n
                                      <svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>\n
                                  {% else %}\n
                                      <svg class="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>\n
                                  {% endif %}\n
                              </div>\n
                              <div class="flex-1 min-w-0 pt-0.5">\n
                                  {% if title %}\n
                                      <div class="text-base font-bold leading-tight">{{ title }}</div>\n
                                  {% endif %}\n
                                  <div class="text-sm text-white/90 mt-0.5">{{ body }}</div>\n
                              </div>\n
                              <button type="button" onclick="closeToast(this.closest('.toast'))" class="flex-shrink-0 text-white/70 hover:text-white transition mt-1">\n
                                  <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg>\n
                              </button>\n
                          </div>\n
                      {% endfor %}\n
                  {% endfor %}\n
              </div>\n
      \n
              <script>\n
                  function toggleSidebar() {\n
                      const sidebar = document.getElementById('sidebar');\n
                      const overlay = document.getElementById('sidebar-overlay');\n
                      const isClosed = sidebar.classList.contains('-translate-x-full');\n
      \n
                      if (isClosed) {\n
                          sidebar.classList.remove('-translate-x-full');\n
                          overlay.classList.remove('hidden');\n
                      } else {\n
                          sidebar.classList.add('-translate-x-full');\n
                          overlay.classList.add('hidden');\n
                      }\n
                  }\n
      \n
                  function toggleSubmenu(button) {\n
                      const submenu = button.nextElementSibling;\n
                      const chevron = button.querySelector('.chevron');\n
                      submenu.classList.toggle('hidden');\n
                      chevron.classList.toggle('rotate-180');\n
                  }\n
      \n
                  function toggleUserMenu() {\n
                      const dropdown = document.getElementById('user-dropdown');\n
                      dropdown.classList.toggle('hidden');\n
                  }\n
      \n
                  // Close user dropdown when clicking outside\n
                  document.addEventListener('click', function (event) {\n
                      const userMenu = document.getElementById('user-menu');\n
                      const dropdown = document.getElementById('user-dropdown');\n
                      if (userMenu && !userMenu.contains(event.target)) {\n
                          dropdown.classList.add('hidden');\n
                      }\n
                  });\n
      \n
                  function closeToast(toast) {\n
                      if (!toast) return;\n
                      toast.classList.add('opacity-0', 'translate-x-full');\n
                      setTimeout(() => toast.remove(), 300);\n
                  }\n
      \n
                  document.querySelectorAll('.toast[data-autohide]').forEach(toast => {\n
                      const delay = parseInt(toast.dataset.autohide, 10);\n
                      if (delay > 0) {\n
                          setTimeout(() => closeToast(toast), delay);\n
                      }\n
                  });\n
              </script>\n
              {% block javascripts %}{% endblock %}\n
          </body>\n
      </html>\n
      """
    -name: "base.html.twig"
    -path: "/var/www/html/templates/base.html.twig"
  }
  -phpFile: "/var/www/html/vendor/twig/twig/src/Extension/CoreExtension.php"
  -phpLine: 1752
}
  1. <div class="ml-auto flex items-center gap-4">
  2. <div class="relative" id="user-menu">
  3. <button type="button" onclick="toggleUserMenu()" class="flex items-center gap-3 p-2 rounded-lg hover:bg-gray-100 transition">
  4. <div class="text-right hidden sm:block">
  5. <div class="text-sm font-semibold text-gray-900">{{ app.user.fullName|default(app.user.userIdentifier) }}</div>
  6. <div class="text-xs text-gray-500">{{ app.user.userIdentifier }}</div>
  7. </div>
  8. <div class="w-9 h-9 rounded-full bg-brand-100 text-emerald-700 flex items-center justify-center font-semibold text-sm">
  9. {{ app.user.firstName|first|upper }}{{ app.user.lastName|first|upper }}
  10. </div>
  1. <div class=\"relative\" id=\"user-menu\">
  2. <button type=\"button\" onclick=\"toggleUserMenu()\" class=\"flex items-center gap-3 p-2 rounded-lg hover:bg-gray-100 transition\">
  3. <div class=\"text-right hidden sm:block\">
  4. <div class=\"text-sm font-semibold text-gray-900\">";
  5. // line 112
  6. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, ($context["app"] ?? null), "user", [], "any", false, true, false, 112), "fullName", [], "any", true, true, false, 112)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 112, $this->source); })()), "user", [], "any", false, false, false, 112), "fullName", [], "any", false, false, false, 112), CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 112, $this->source); })()), "user", [], "any", false, false, false, 112), "userIdentifier", [], "any", false, false, false, 112))) : (CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 112, $this->source); })()), "user", [], "any", false, false, false, 112), "userIdentifier", [], "any", false, false, false, 112))), "html", null, true);
  7. yield "</div>
  8. <div class=\"text-xs text-gray-500\">";
  9. // line 113
  10. yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, (isset($context["app"]) || array_key_exists("app", $context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.', 113, $this->source); })()), "user", [], "any", false, false, false, 113), "userIdentifier", [], "any", false, false, false, 113), "html", null, true);
  11. yield "</div>
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", "financial_planning/placeholder.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('financial_planning/placeholder.html.twig', array('title' => 'ТБ — Распределение денег')) in src/Controller/FinancialPlanningController.php (line 680)
  1. }
  2. #[Route("/tb/distribution", name: "tb_distribution")]
  3. public function tbDistribution(): Response
  4. {
  5. return $this->render("financial_planning/placeholder.html.twig", [
  6. "title" => "ТБ — Распределение денег",
  7. ]);
  8. }
  9. #[Route("/control", name: "control")]
in vendor/symfony/http-kernel/HttpKernel.php -> tbDistribution (line 183)
  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. if (Kernel::VERSION_ID >= 60400) {
  7. $response->send(false);
  8. if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in vendor/autoload_runtime.php -> run (line 32)
  1. $app = $app(...$args);
  2. exit(
  3. $runtime
  4. ->getRunner($app)
  5. ->run()
  6. );
require_once('/var/www/html/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 Message
info 22:11:14 Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "794b49"
    },
    "request_uri": "https://fin.dostavka24.by/_profiler/794b49",
    "method": "GET"
}
debug 22:11:14 Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
debug 22:11:14 Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
debug 22:11:14 Notified event "kernel.request" to listener "Nelmio\CorsBundle\EventListener\CorsListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Nelmio\\CorsBundle\\EventListener\\CorsListener::onKernelRequest"
}
debug 22:11:14 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:11:14 Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
debug 22:11:14 Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
debug 22:11:14 Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
debug 22:11:14 Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
debug 22:11:14 Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
debug 22:11:14 Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
debug 22:11:14 Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
debug 22:11:14 Notified event "kernel.request" to listener "EasyCorp\Bundle\EasyAdminBundle\EventListener\AdminRouterSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "EasyCorp\\Bundle\\EasyAdminBundle\\EventListener\\AdminRouterSubscriber::onKernelRequest"
}
debug 22:11:14 Notified event "kernel.controller" to listener "EasyCorp\Bundle\EasyAdminBundle\EventListener\AdminRouterSubscriber::onKernelController".
{
    "event": "kernel.controller",
    "listener": "EasyCorp\\Bundle\\EasyAdminBundle\\EventListener\\AdminRouterSubscriber::onKernelController"
}
debug 22:11:14 Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
debug 22:11:14 Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
debug 22:11:14 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:11:14 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:11:14 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:11:14 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:11:14 Notified event "kernel.controller_arguments" to listener "ContainerNzOsbRC\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerNzOsbRC\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
debug 22:11:14 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 ("userIdentifier") on a null variable in "base.html.twig" at line 112.

  at templates/base.html.twig:112
  at Twig\Extension\CoreExtension::getAttribute(object(Environment), object(Source), null, 'userIdentifier', array(), 'any', false, false, false, 112)
     (var/cache/dev/twig/54/54999c5d928282e6cea3aae1ed1587d2.php:186)
  at __TwigTemplate_3e4757e843b0acd5b579bd3a40b4bead->doDisplay(array('title' => 'ТБ — Распределение денег', 'ea' => object(AdminContextProvider), 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_bf68a3ad31322f8f223894f8374b328a), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_3e4757e843b0acd5b579bd3a40b4bead), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_bf68a3ad31322f8f223894f8374b328a), 'block_body'), 'javascripts' => array(object(__TwigTemplate_3e4757e843b0acd5b579bd3a40b4bead), 'block_javascripts')))
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield(array('title' => 'ТБ — Распределение денег', 'ea' => object(AdminContextProvider), 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_bf68a3ad31322f8f223894f8374b328a), 'block_title'), 'stylesheets' => array(object(__TwigTemplate_3e4757e843b0acd5b579bd3a40b4bead), 'block_stylesheets'), 'body' => array(object(__TwigTemplate_bf68a3ad31322f8f223894f8374b328a), 'block_body'), 'javascripts' => array(object(__TwigTemplate_3e4757e843b0acd5b579bd3a40b4bead), 'block_javascripts')))
     (var/cache/dev/twig/47/471dbfa24ee0342e51612a2fbf67f494.php:54)
  at __TwigTemplate_bf68a3ad31322f8f223894f8374b328a->doDisplay(array('title' => 'ТБ — Распределение денег', 'ea' => object(AdminContextProvider), 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_bf68a3ad31322f8f223894f8374b328a), 'block_title'), 'body' => array(object(__TwigTemplate_bf68a3ad31322f8f223894f8374b328a), 'block_body')))
     (vendor/twig/twig/src/Template.php:411)
  at Twig\Template->yield(array('title' => 'ТБ — Распределение денег', 'ea' => object(AdminContextProvider), 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_bf68a3ad31322f8f223894f8374b328a), 'block_title'), 'body' => array(object(__TwigTemplate_bf68a3ad31322f8f223894f8374b328a), 'block_body')))
     (vendor/twig/twig/src/Template.php:366)
  at Twig\Template->display(array('title' => 'ТБ — Распределение денег'))
     (vendor/twig/twig/src/Template.php:381)
  at Twig\Template->render(array('title' => 'ТБ — Распределение денег'))
     (vendor/twig/twig/src/TemplateWrapper.php:51)
  at Twig\TemplateWrapper->render(array('title' => 'ТБ — Распределение денег'))
     (vendor/twig/twig/src/Environment.php:333)
  at Twig\Environment->render('financial_planning/placeholder.html.twig', array('title' => 'ТБ — Распределение денег'))
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:467)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView('financial_planning/placeholder.html.twig', null, array('title' => 'ТБ — Распределение денег'), 'render')
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:472)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender('financial_planning/placeholder.html.twig', null, array('title' => 'ТБ — Распределение денег'), null, 'render')
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:284)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render('financial_planning/placeholder.html.twig', array('title' => 'ТБ — Распределение денег'))
     (src/Controller/FinancialPlanningController.php:680)
  at App\Controller\FinancialPlanningController->tbDistribution()
     (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:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:32)
  at require_once('/var/www/html/vendor/autoload_runtime.php')
     (public/index.php:5)