変数を小枝フィールドテンプレートに追加するにはどうすればよいですか?


9

ノードページで、別の別のフィールド(サンプルフィールド)とともにノードタイトルを出力に追加します。

新規に作成しましたfield--field-example.html.twigが、フィールドテンプレートでは使用できないため、ノードタイトル変数にアクセスできません。

テーマの前処理に変数を追加する必要がありますthemename.theme

どのように私は、変数を追加するthemename.themeと何がで対応するエントリだろうかfield--field-example.html.twig


テンプレートで使用するフィールドから値を抽出するには、hook_preprocess_nodeを使用します。

@IvanJaros、私は今質問を更新しました。
テイラータフ2016

回答:


15

ノードのタイトルを.themeファイルを介して変数として渡すことについて質問したので、template_preprocess_fieldを使用して次のようなことを行うことができます。

  function themename_preprocess_field(&$variables, $hook) {
    if ($variables['element']['#field_name'] == 'field_example') {
      $variables['node_title'] = $variables['element']['#object']->getTitle();
    }
  }

次に、field--field-example.html.twig単に使用{{node_title}}して、ノードのタイトルをレンダリングします。

以下の4k4の回答も参照してください。


4k4から提供されたものを含めて正しいように回答を編集しようとしましたが、関連性がないと見なされたため、私の編集は拒否されました...
Taylor Taff

編集を承認する@TaylorTaff?見たことがない。以下の回答を含むように編集を試みます。
Janey、2016

@Janey十分なバッジを持つ多くのユーザーは、そのような編集をレビューできます。あなたの回答を今後のレビューのためにブックマークしました。もう1つの質問:あなた$variables['element']['#object']->getTitle();はそれがキャッチできると確信していpreprocess_fieldますか?:これは実際にはオーバーここに私の質問に答えるためdrupal.stackexchange.com/questions/197497/...
nilsun

11

フィールドテンプレートの変数で使用できるノードオブジェクトがあるため、前処理関数は必要ありません。

フィールドテンプレートのノードからタイトルを取得するには:

{{ element['#object'].label }}

これは質問に答えますが、Janeyによる他の回答がより役立つので、これをその回答に追加し、承認済みとしてマークしました。
テイラータフ2016

1
しかし、あなたの質問は誤った仮定の下にありました:「しかし、フィールドテンプレートでは使用できないため、ノードタイトル変数にアクセスできません。」
2016

はい、4k4、あなたは正しいです、私の質問は間違っていました。
テイラータフ2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.