我想在<a>
- 一个字段标记中添加一个类,该字段包含一个URL链接和一个链接文本(它是&#39;字段类型&#34;链接&#34;)并且该字段的名称为content.field_c_button_link
因此,在我的HTML文件中使用twig,我希望有类似的东西:
{{ content.field_c_button_link.0.addClass('button blue') }}
如何正确添加课程?
答案 0 :(得分:4)
为什么不手动将锚标签拼凑在一起?这样你就可以完全控制一切。您的模板中有类似的内容
<a href="{{content.field_url.0['#url']}}" class="custom classes">{{content.field_url.0['#title']}}</a>
答案 1 :(得分:0)
好的,这太可怕了,但这是我找到的唯一方法:
如果查看链接的默认drupal构建数组,您应该看到content.field_c_button_link.0是一个数组(4)
'#type' => string(4) "link"
'#title' => string(15) "Big Blue Button"
'#options' => array(0)
'#url' => object Drupal\Core\Url(11)
因此,要直接在<a>
标记上设置类,我们必须使用正确的子数组设置加载'#options'(目前为空)
'#options' => array(1)
'attributes' => array(1)
'class' => array(2)
string(6) "button"
string(4) "blue"
在twig中我能找到的唯一方法是使用一系列temps并将它们与原始数组合并,因为twig不会解析我尝试过的任何其他内容:
{% set temp = {'attributes': {'class': ['button','blue']}} %}
{% set temp2 = content.field_c_button_link.0 %}
{% set temp2 = temp2|merge({'#options': temp}) %}
{% set temp3 = content.field_c_button_link|without('0') %}
{% set temp3 = temp3|merge({'0': temp2}) %}
{% set content = content|merge({'field_c_button_link': temp3}) %}
注意没有它的是Drupal / twig过滤器。我不得不用它来删除空的'0'元素,以避免链接打印两次。
请告诉我有一种更简单的方法。