My firstime ever asking a question in a forum. I normally use blade for templating but the standalone Twig is simpler to install. So I have this issue here i hope you can help me.
JavaScript
x
$breadcrums['titles'] = ['Home','Toys','Ball'];
$breadcrums['links'] = ['/','/toys','/toys/ball'];
{% for item in breadcrums %}
<a href={{ item.links }}> {{ item.titles }} </a>
{% endfor %}
I’am traying to achieve something like this, but the code prints nothing. In the other hand if a do this:
JavaScript
{% for value in breadcrums.titles %}
{{ value }}
{% endfor %}
works fine, but not what I’am trying to do. Thanks
Advertisement
Answer
I suggest you change your $breadcrumbs
to
JavaScript
$breadcrumbs = [
'Home' => '/',
'Toys' => '/toys',
'Ball' => '/toys/ball'
];
This makes your array more readable, you can easily see the title and its related link (instead of having two “unrelated” arrays).
In your twig template you can then use:
JavaScript
{% for title,link in breadcrumbs %}
<a href="{{ link }}">{{ title }}</a>
{% endfor %}
Solution for more attributes:
If you want to add more attributes to your breadcrumbs you can use something like:
JavaScript
$breadcrumbs = [
[
'title' => 'Home',
'url' => '/',
'atitle' => 'Link to the home page'
],
[
'title' => 'Toys',
'url' => '/toys',
'atitle' => 'Every toy you can imagine'
],
[
'title' => 'Ball',
'url' => '/toys/ball',
'atitle' => 'Ballroom blitz'
]
];
In your twig file you then use:
JavaScript
{% for breadcrumb in breadcrumbs %}
<a href="{{ breadcrumb.url }}" title="{{ breadcrumb.atitle }}">{{ breadcrumb.title }}</a>
{% endfor %}
Will output:
JavaScript
<a href="/" title="Link to the home page">Home</a>
<a href="/toys" title="Every toy you can imagine">Toys</a>
<a href="/toys/ball" title="Ballroom blitz">Ball</a>