#php #twig
#php #twig
Вопрос:
navbar.html.twig
<ul class="navbar-nav mr-auto">
{% for Links, Item in menu %}
<li class="nav-item">
<a class="nav-link" href="{{ Links }}">{{ Item }}
</a>
</li>
{% endfor %}
</ul>
server.php
$menu = [
"Items" => array("Home", "Woman's Fashion", "Men's Fashion", "Accessories"),
"Links" => array("/homepage", "/woman", "/men", "/accessories")
];
$params = [
"name" => "Mr. Gadget",
"title" => SITE_TITLE,
"SITE_TITLE" => SITE_TITLE,
"user" => "myName",
"menu" => $menu
];
echo $twig->render('views/navbar.html.twig', $params);
Это генерирует вывод
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="Items">Array
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="Links">Array
</a>
</li>
</ul>
Итак, что я пытаюсь сделать, это в основном сгенерировать ссылку и имя для каждого пункта меню через массив
Я также попытался поместить цикл for в цикл for, который создает 8 разных элементов вместо 4. Как я могу получить имя и ссылку в общем количестве элементов?
Комментарии:
1. Я считаю, что вы должны подготовить свои данные для структурирования так, как вам нужно, прежде чем передавать их в шаблон. Чем меньше логики вам нужно сделать в шаблоне, тем лучше. Так что, возможно, один массив с именами в качестве ключей и ссылками в качестве значений.
Ответ №1:
Вы можете выполнить итерацию menu.Items
или menu.Links
и использовать ключ массива, чтобы выбрать запись из другого массива следующим образом
<ul class="navbar-nav mr-auto">
{% for key, Item in menu.Items %}
<li class="nav-item">
<a class="nav-link" href="{{ menu.Links[key] }}">{{ Item }}
</a>
</li>
{% endfor %}
</ul>