web-dev-qa-db-ja.com

Twigでビューフィールドをどのように印刷しますか?

ビューがあり、フィールドとしてタイトルを追加しました。

例:タイトルを印刷するにはどうすればよいですか?

Drupal 7では、

views-view-fields-[ビュー名] .tpl.php

<?php print $fields["title"]->content; ?>

Drupal 8でこれをどのように行うのですか?

私は作成しましたviews-view-fields-[viewname] .html.twig

{{ fields.title }}しかし、次のような古典的なエラーメッセージが表示されます。

Webサイトで予期しないエラーが発生しました。後でもう一度やり直してください。

その後、{{ field.title }}{{ title }}および{{ content.title }}何も印刷されません。

6
No Sssweat

夕食を食べた後、皿を洗い、それをいじって、core\modules\views\templatesにあるviews-view-fields.html.twigのコメントを読んでください。

/**
 * @file
 * Theme override to display all the fields in a row.
 *
 * Available variables:
 * - view: The view in use.
 * - fields: A list of fields, each one contains:
 *   - content: The output of the field.
 *   - raw: The raw data for the field, if it exists. This is NOT output safe.
 *   - class: The safe class ID to use.
 *   - handler: The Views field handler controlling this field.
 *   - inline: Whether or not the field should be inline.
 *   - wrapper_element: An HTML element for a wrapper.
 *   - wrapper_attributes: List of attributes for wrapper element.
 *   - separator: An optional separator that may appear before a field.
 *   - label: The field's label text.
 *   - label_element: An HTML element for a label wrapper.
 *   - label_attributes: List of attributes for label wrapper.
 *   - label_suffix: Colon after the label.
 *   - element_type: An HTML element for the field content.
 *   - element_attributes: List of attributes for HTML element for field content.
 *   - has_label_colon: A boolean indicating whether to display a colon after
 *     the label.
 *   - element_type: An HTML element for the field content.
 *   - element_attributes: List of attributes for HTML element for field content.
 * - row: The raw result from the query, with all data it fetched.
 *
 * @see template_preprocess_views_view_fields()
 */

{{ fields.title.content }}は私のために働いた。後で見ると、それは D7コード によく似ています。

その他のフィールド:

{{ fields.machine_name.content }}マシン名は何ですか?それらは、コンテンツタイプまたはブロックのフィールドの管理の マシン名列 の下にあります。

11
No Sssweat

私はキントを使用する方法を考え出しました。

Views-view-unformatted.html.twig内で、次のコードを使用して個々のフィールドを表示します。

{% for row in rows %}

{{ row.content['#view'].style_plugin.render_tokens[ loop.index0 ]['{{ YOUR_FIELD_NAME }}'] }}

{% endfor %}
1
Ibrahim Samir