symfony - Symfony4 在侧边栏中显示最新帖子
问题描述
我想在侧边栏中显示最后的 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), .....]);
但是,呃。
有没有像全局过滤器/功能这样的东西?我没有找到做这个的好方法。
解决方案
在您的模板中,您可以呈现负责侧边栏的控制器,如下所示:
{{ render(controller('App\\Default::renderSidebar')) }}
在这里阅读更多关于它的信息 https://symfony.com/doc/current/templating/embedding_controllers.html
推荐阅读
- python - Pytorch/自定义数据集加载器/Numpy 数组到张量
- python - Python 代码风格:有没有办法配置 linter 将参数拆分为多行?
- android - 如果发出许多请求,Android 会停止 XHR 请求
- sql - 雪花,SQL where 子句
- api - 设计一个 REST API
- python - 循环下载多个音频文件失败(python)
- python - Spyder 5 缺少依赖项 - spyder_kernels 版本错误
- sql - 根据组计算不同的值
- c# - C# - 如何迭代 Excel._Worksheet 中的所有特定单元格?
- vue.js - 如何在 vue js 中重新启动其他 select2 组件?