2017-07-12 16 views
0

twigテンプレートの配列の#optionsキーにアクセスするにはどうすればよいですか?twigテンプレートの#optionsキーへのアクセス

言語が現在のものかどうかを確認してから、それをアクティブに設定しようとしています。

私のコードは次のようになります。

<ul class="headerbar__text--language navbar-right"> 
{%- for key, item in links -%} 
    {% 
    set link_class = [ 
     item.set_active_class ? 'active', 
    ] 
    %} 
    <li{{ item.attributes.addClass(key|clean_class).addClass(link_class) }}> 
    {{ dump(item) }} 
    {%- if item.link -%} 
     {{ item.link }} 
    {%- elseif item.text_attributes -%} 
     <span{{ item.text_attributes }}>{{ item.text }}</span> 
    {%- else -%} 
     {{ item.text }} 
    {%- endif -%} 
    </li> 
{%- endfor -%} 

しかし、クラスが設定されていません。あなたが見ることができるように、そこにダンプされ、結果は以下の通りです:私はlink['#options']またはlink.optionsまたはあなたがlink.set_active_classを見ることができるようにそれにアクセスするためにしようと試みてきました

array (size=4) 
'link' => 
    array (size=5) 
     '#type' => string 'link' (length=4) 
     '#title' => string 'German' (length=6) 
     '#options' => 
     array (size=5) 
      'language' => 
      object(Drupal\language\Entity\ConfigurableLanguage)[1623] 
       ... 
      'attributes' => 
      array (size=1) 
       ... 
      'query' => 
      array (size=0) 
       ... 
      'ajax' => null 
      'set_active_class' => boolean true 
     '#url' => 
     object(Drupal\Core\Url)[1629] 
      protected 'urlGenerator' => 
      object(Drupal\Core\Render\MetadataBubblingUrlGenerator)[227] 
       ... 
      protected 'urlAssembler' => null 
      protected 'accessManager' => null 
      protected 'routeName' => string '<front>' (length=7) 
      protected 'routeParameters' => 
      array (size=0) 
       ... 
      protected 'options' => 
      array (size=0) 
       ... 
      protected 'external' => boolean false 
      protected 'unrouted' => boolean false 
      protected 'uri' => null 
      protected 'internalPath' => string '' (length=0) 
      protected '_serviceIds' => 
      array (size=0) 
       ... 
     '#ajax' => null 
    'text' => string 'German' (length=6) 
    'text_attributes' => 
    object(Drupal\Core\Template\Attribute)[1646] 
     protected 'storage' => 
     array (size=1) 
      'class' => 
      object(Drupal\Core\Template\AttributeArray)[1647] 
       ... 
    'attributes' => 
    object(Drupal\Core\Template\Attribute)[1649] 
     protected 'storage' => 
     array (size=3) 
      'hreflang' => 
      object(Drupal\Core\Template\AttributeString)[1650] 
       ... 
      'data-drupal-link-system-path' => 
      object(Drupal\Core\Template\AttributeString)[1651] 
       ... 
      'class' => 
      object(Drupal\Core\Template\AttributeArray)[1959] 
       ... 

、それらのすべては、NULLを返します。

どのように私はそれらの属性にアクセスできますか?

アドバイスありがとうございます!

答えて

1

ダンプの構成によれば、これが動作する必要があります。

{% set link_class = item.link['#options'].set_active_class ? 'active' %} 
+0

をああ、.linkを逃した:Dのおかげでたくさん! – mastercheef85

関連する問題