public function it_should_set_template_name_from_route_with_content(RouteInterface $route, ArticleInterface $article) { $route->getTemplateName()->willReturn('test.html.twig'); $route->getContent()->willReturn($article); $article->getRoute()->willReturn(null); $article->getTemplateName()->willReturn(null); $this->setTemplateName($article, [RouteObjectInterface::ROUTE_OBJECT => $route])->shouldReturn([RouteObjectInterface::ROUTE_OBJECT => $route, RouteObjectInterface::TEMPLATE_NAME => 'article.html.twig']); }
/** * {@inheritdoc} */ public function resolveFromRoute(RouteInterface $route, $templateName = TemplateNameResolverInterface::TEMPLATE_NAME) { if (null !== $route->getTemplateName()) { $templateName = $route->getTemplateName(); } if (RouteInterface::TYPE_COLLECTION === $route->getType() && null === $route->getTemplateName()) { if ($contentTemplateName = $this->getTemplateNameFromRouteContent($route)) { $templateName = $contentTemplateName; } else { throw new NotFoundHttpException(sprintf('There is no template file defined for "%s" route!', $route->getName())); } } elseif (RouteInterface::TYPE_CONTENT === $route->getType()) { if ($contentTemplateName = $this->getTemplateNameFromRouteContent($route)) { $templateName = $contentTemplateName; } } return $templateName; }