- Issue created by @uv516
My drupal: 11.2.
In my log I see the error:
TypeError: Drupal\Core\Controller\TitleResolver::getTitle(): Argument #2 ($route) must be of type Symfony\Component\Routing\Route, null given, called in /var/www/my.site.dk/www/modules/contrib/at_tool/src/AtToolLazyBuilders.php on line 61 i Drupal\Core\Controller\TitleResolver->getTitle() (linje 50 af /var/www/my.site.dk/www/core/lib/Drupal/Core/Controller/TitleResolver.php)
The trace is:
#0 /var/www/my.site.dk/www/modules/contrib/at_tool/src/AtToolLazyBuilders.php(61): Drupal\Core\Controller\TitleResolver->getTitle()
#1 [internal function]: Drupal\at_tool\AtToolLazyBuilders->breadcrumbTitle()
#2 /var/www/my.site.dk/www/core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php(107): call_user_func_array()
#3 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(871): Drupal\Core\Render\Renderer->doTrustedCallback()
#4 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(409): Drupal\Core\Render\Renderer->doCallback()
#5 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(245): Drupal\Core\Render\Renderer->doRender()
#6 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(141): Drupal\Core\Render\Renderer->doRenderRoot()
#7 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(622): Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}()
#8 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(140): Drupal\Core\Render\Renderer->executeInRenderContext()
#9 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(167): Drupal\Core\Render\Renderer->renderInIsolation()
#10 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(724): Drupal\Core\Render\Renderer->doRenderPlaceholder()
#11 [internal function]: Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}()
#12 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(732): Fiber->start()
#13 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(257): Drupal\Core\Render\Renderer->replacePlaceholders()
#14 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(141): Drupal\Core\Render\Renderer->doRenderRoot()
#15 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(622): Drupal\Core\Render\Renderer->Drupal\Core\Render\{closure}()
#16 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(140): Drupal\Core\Render\Renderer->executeInRenderContext()
#17 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(167): Drupal\Core\Render\Renderer->renderInIsolation()
#18 /var/www/my.site.dk/www/core/lib/Drupal/Core/Render/Renderer.php(204): Drupal\Core\Render\Renderer->doRenderPlaceholder()
#19 /var/www/my.site.dk/www/core/modules/big_pipe/src/Render/BigPipe.php(730): Drupal\Core\Render\Renderer->renderPlaceholder()
#20 /var/www/my.site.dk/www/core/modules/big_pipe/src/Render/BigPipe.php(500): Drupal\big_pipe\Render\BigPipe->renderPlaceholder()
#21 [internal function]: Drupal\big_pipe\Render\BigPipe->Drupal\big_pipe\Render\{closure}()
#22 /var/www/my.site.dk/www/core/modules/big_pipe/src/Render/BigPipe.php(507): Fiber->start()
#23 /var/www/my.site.dk/www/core/modules/big_pipe/src/Render/BigPipe.php(256): Drupal\big_pipe\Render\BigPipe->sendPlaceholders()
#24 /var/www/my.site.dk/www/core/modules/big_pipe/src/Render/BigPipeResponse.php(116): Drupal\big_pipe\Render\BigPipe->sendContent()
#25 /var/www/my.site.dk/vendor/symfony/http-foundation/Response.php(397): Drupal\big_pipe\Render\BigPipeResponse->sendContent()
#26 /var/www/my.site.dk/www/index.php(20): Symfony\Component\HttpFoundation\Response->send()
#27 {main}
.
I have checked the file AtToolLazyBuilders.php and the function breadcrumbTitle:
In this line $route = $this->routeMatch->getRouteObject();
, the getRouteObject() returns NULL
Therefore I made an (illegal) change:
public function breadcrumbTitle() {
$request = $this->requestStack->getCurrentRequest();
$route = $this->routeMatch->getRouteObject();
- $title = $this->titleResolver->getTitle($request, $route);
+ $title = $request && $route ? $this->titleResolver->getTitle($request, $route) : NULL;
$array = [
'#theme' => 'page_title__breadcrumb',
'#title' => $title,
];
return $array;
}
...but we need a better solution...?
Needs work
3.1
Code