Symfony4 показать последние сообщения в боковой панели - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу отобразить последние 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, .....]);

Но теперь я хочу использовать эту функцию все функции в каждом контроллере.

iмог бы создать метод в AbstractController как

function getLatestPosts(PageRepository $pageRepository): array
{
    $pageRepository->getLastPages();
}

и после этого сделать представление:

return $this->render('page/index.html.twig', ['lastPages' => $this->getLatestPosts($repository), .....]);

Но, э-э.

Есть ли что-то вродеглобальный фильтр / функция, например?Я не нашел хорошего способа сделать это.

1 Ответ

0 голосов
/ 29 ноября 2018

В вашем шаблоне вы можете отобразить контроллер, который отвечает за боковую панель, следующим образом:

{{ render(controller('App\\Default::renderSidebar')) }}

Подробнее об этом здесь https://symfony.com/doc/current/templating/embedding_controllers.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...