Я делаю небольшой проект с Symfony, но теперь у меня есть вопрос о base.twig.html
, и нужно ли его передавать с какой-то сущностью в нем.Я использую Symfony 4.
Допустим, у меня есть какая-то сущность MainCategory
с:
- id
- name
- info
- slug
Затем из моего маршрута /
я использую MainCategoryRepository
, чтобы получить все записи для этой сущности, а затем визуализирую base.twig
с переданными записями.Затем в панели навигации я перебираю все записи и делаю ссылки с именем entity.name.
После этого в другом маршруте "/ {slug}" я создаю другой файл ветки, который расширяет базовый.Но здесь я не использую репозиторий, я использую только Entity - MainCategory, потому что 'slug' является уникальным полем, и он получит только эту запись.И вот проблема, я просто передаю одну запись, но панель навигации из цикла 'base.twig' по всем записям, и здесь я получаю сообщение об ошибке:
Переменная "mainCategories" несуществовать.
Вот мой код:
Маршрут "/"
/**
* @Route("/", name="app_homepage")
*/
public function homepage(MainCategoryRepository $mainCategoryRepository)
{
$mainCategories = $mainCategoryRepository->findAll();
return $this->render('base.html.twig', [
'mainCategories' => $mainCategories,
]);
}
"base.html.twig"
{% for mainCategory in mainCategories %}
<li>
<a href="{{ path('category_show', {'slug': mainCategory.slug}) }}">
{{ mainCategory.name }}</a>
</li>
{% endfor %}
Маршрут" / {slug} "
/**
* @Route("/{slug}", name="category_show")
*/
public function categoryShow(MainCategory $mainCategory)
{
return $this->render('show.html.twig',
[
'mainCategory' => $mainCategory,
]
);
}
" show.html.twig "
{% extends 'base.html.twig' %}
{% block body %}
<p>{{ mainCategory.Info }}</p>
{% endblock %}
ОШИБКА:
Переменная "mainCategories" не существует.
Так что хорошая идея передать любую сущность в base.twig
?Я могу передать все записи во второй файл ветки, но это означает, что я должен делать это в каждом шаблоне, который расширяет base.twig
.