2016-10-20 36 views
3

這是我的設置。我有一個自定義塊類型,它有一個參考實體字段。它參考「產品」的內容類型。產品內容類型的參考實體字段爲「系列」的分類詞彙Drupal 8在樹枝中得到一個參考實體的字段值

該系列分類包含一個字段,我需要在我的自定義塊的產品字段主題中獲取值。我基本上有一個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> 

然後就是去我的領域 - 現場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> 

回答

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 
+0

謝謝!第二種方法有助於我所需要的。 – SkankHunt42

相關問題