Symfony4 在边栏中显示最新的帖子
Symfony4 show latest Posts in Sidebar
我想在边栏中显示最后 x 个帖子。
所以目前我的 base.twig 中有以下内容:
{% block sidebar %}
{% for page in lastPages %}
<a href="{{ path('page_show', {'slug': page.slug}) }}">{{ page.title }}</a> <br>
{% endfor %}
{% endblock %}
在我的控制器中,我使用存储库获取最后的帖子:
$lastPages = $pageRepository->getLastPages();
之后,我渲染视图
return $this->render('page/index.html.twig', ['lastPages' => $lastPages, .....]);
但现在我想在每个控制器中使用这个功能。
我可以在 AbstractController
中创建一个方法,例如
function getLatestPosts(PageRepository $pageRepository): array
{
$pageRepository->getLastPages();
}
在此渲染视图之后:
return $this->render('page/index.html.twig', ['lastPages' => $this->getLatestPosts($repository), .....]);
但是,呃。
是否有类似全局 Filter/Function 的东西?我没有找到制作这个的好方法。
在您的模板中,您可以渲染负责侧边栏的控制器,如下所示:
{{ render(controller('App\Default::renderSidebar')) }}
在此处阅读更多相关信息
https://symfony.com/doc/current/templating/embedding_controllers.html
我想在边栏中显示最后 x 个帖子。
所以目前我的 base.twig 中有以下内容:
{% block sidebar %}
{% for page in lastPages %}
<a href="{{ path('page_show', {'slug': page.slug}) }}">{{ page.title }}</a> <br>
{% endfor %}
{% endblock %}
在我的控制器中,我使用存储库获取最后的帖子:
$lastPages = $pageRepository->getLastPages();
之后,我渲染视图
return $this->render('page/index.html.twig', ['lastPages' => $lastPages, .....]);
但现在我想在每个控制器中使用这个功能。
我可以在 AbstractController
中创建一个方法,例如
function getLatestPosts(PageRepository $pageRepository): array
{
$pageRepository->getLastPages();
}
在此渲染视图之后:
return $this->render('page/index.html.twig', ['lastPages' => $this->getLatestPosts($repository), .....]);
但是,呃。
是否有类似全局 Filter/Function 的东西?我没有找到制作这个的好方法。
在您的模板中,您可以渲染负责侧边栏的控制器,如下所示:
{{ render(controller('App\Default::renderSidebar')) }}
在此处阅读更多相关信息 https://symfony.com/doc/current/templating/embedding_controllers.html