这是我的设置。我有自定义块类型,其中包含引用实体字段。它引用了“产品”的内容类型。产品内容类型具有“系列”的分类词汇的参考实体字段。
系列分类包含一个字段,我需要在自定义块的产品字段主题中获取值。我基本上有5个产品块,每个产品属于一个系列。在我的主题中,我需要为每个产品应用一个系列字段值。
有没有办法严格从树枝上获得这个值?我已经尝试了无数的组合链试图达到它。
我有我的block - bundle - product_series_block.html.twig文件,它围绕着这些产品。
<div {{ attributes.addClass(classes) }}
data-ng-controller="ProductsController as vm">
<div class="container">
{{ title_prefix }}
{% if label %}
<h2{{ title_attributes }}>{{ label }}</h2>
{% endif %}
{{ title_suffix }}
<div class="product-holder">
{% block content %}
{{ content }}
{% endblock %}
</div>
</div>
</div>
然后进入我的领域 - field-products.html.twig,我想在数据系列html属性中使用该系列。
<div{{ attributes.addClass(classes, 'field__items') }} data-series="{{ cant_figure_this_out }}">
{% for item in items %}
<div{{ item.attributes.addClass('field__item item') }}>{{ item.content }}</div>
{% endfor %}
</div>
答案 0 :(得分:2)
1 /您可以在节点模板级别获取它,如下所示:
node.field_serie.0.get('entity').getTarget().getValue().getName()
如果你想把它作为一个数组......:
{% set series = [] %}
{% for key, item in node.field_serie %}
{% set series = series|merge( [item.get('entity').getTarget().getValue().getName()] ) %}
{% endfor %}
2 /您也可以在字段模板级别获取
{% set series = [] %}
{% for key, item in item['content']['#node'].field_serie %}
{% set series = series|merge( [item.get('entity').getTarget().getValue().getName()] ) %}
{% endfor %}
3 /然后你可以使用类似的东西(这可能需要更多的工作):
attributes.setAttribute('data-series', series|join(',')|escape