2016-12-08 2 views
1

配列に深く入れ子にされたコンテンツタイプの値にアクセスしようとしています。これは実際のシナリオです:Drupal 8 - 配列構造の内部に深くネストされたフィールド値にアクセスする方法

Drupal 8のデフォルトの検索結果ページのレイアウトを追加のフィールド情報でカスタマイズしたいと考えています。

enter image description here

私がアクセスするフィールドがbodyよう#result>node>fieldsの下にネストされている、field_categoryなど

です:私は私にアクセスするためのフィールドが用意されていかを知るためには、これは私を示しており、​​を使用しました私の小枝のテンプレートの中に直接アクセスできますか?私は{{ item.value['node']['fields']['field_name']} }のようなものを推測していましたか?しかし、これは私に何も与えなかった!

私が考えている方法は、適切な方法ではなく、まったく方法でない可能性もあります。私はまだDrupalにとって非常に新しいです。

私が欲しいのは、配列構造の中の深いところにネストされたアクセス希望のフィールドです。です。フォローする親指のルールや構文がありますか?誰かが入れ子になったDrupal配列の内部から特定の要素にアクセスするプロセスを説明してくれれば、これは大きな助けになるでしょう。

注:レイアウトをカスタマイズするために、/core/themes/stable/templaes/datasetのファイルをitem-list.html.twigから私のテーマのテンプレートフォルダにコピーしました。

Drupalのバージョン:8.2.3

EDIT:検索結果のテンプレートファイル(item-list.html.twig

+0

は間違いを発見していません。私のエディタの構文では、の赤が強調表示されます。 IFの記述が真であるかどうかチェックしましたか? {% - %}にはマイナスが見られませんでした。 – Gabbax0r

+0

私はこれらの " - "記号が何をしているのか全く分かりません。私は安定したテーマからテンプレートをコピーしました。そして、このように書かれました。 –

答えて

0

あなたはあなたが使用する必要があり、テンプレートから特定のフィールドをレンダリングしたい場合例:

{{ content.field_feature }} 

あなたの配列またはiで見ることができますn d8のUIはフィールドのマシン名です。

{{ content.field_<machine-name> }} 

これで、自分のコンテンツと自分のコンテンツタイプにアクセスできます。

+0

'{{content.body}}'と '{{content.field_category}} 'を試しましたが、何も表示されませんでした。 'kint'が示す限り、私は' content 'という名前の要素を見ません。 –

+0

@SubrataSarkar d8でこのテンプレートを使用するかどうかをチェックするために、簡単なHTMLをテンプレートに書き込もうとしましたか? – Gabbax0r

+0

はい、私はすでにそれを行い、これが "the"ページであることを確認しました。 –

関連する問題