在Drupal 8 和 Drupal 9 的 twig 模板開發中,常常會需要輸出指定的field,本文列出常見類型的field取值方法,以便查詢。
1. 一般類型 General
Field type |
How to get value |
Note |
Boolean |
{{ content.field_name[0] }} |
值為“On”或“Off”的label |
Boolean |
{{ content.field_name['#items'][0].value }} |
值為1或0 |
Date |
{{ content.field_name[0] }} |
值為套用time.html.twig 模板的完整日期時間html片段 |
Date |
{{ content.field_name[0]['#text] }} |
值為完整日期時間格式的純文本 |
Timestamp |
{{ content.field_name[0] }} |
值為完整日期時間格式的純文本 |
Timestamp |
{{ content.field_name['#items'][0].value }} |
值為時間戳數字 |
Email |
{{ content.field_name[0] }} |
值為純文本格式 |
link |
{{ content.field_name[0]['#url'] }} |
值為連結URL |
link |
{{ content.field_name[0]['#title'] }} |
值為連結文字 |
2. 數字類型 Number
Field type |
How to get value |
Note |
Number (float) |
{{ content.field_name[0] }} |
顯示有前綴和後綴並number_decimal格式化 |
Number (float) |
{{ content.field_name['#items'][0].value }} |
顯示未經格式化的浮點數 |
Number (integer) |
{{ content.field_name[0] }} |
顯示有前綴和後綴 |
Number (integer) |
{{ content.field_name['#items'][0].value }} |
顯示未經格式化的整數 |
Number (decimal) |
{{ content.field_name[0] }} |
顯示有前綴和後綴 |
Number (decimal) |
{{ content.field_name['#items'][0].value }} |
顯示未經格式化的小數 |
3. 文字類型 Text
Field type |
How to get value |
Note |
Text (formatted) |
{{ content.field_name[0] }} |
帶格式的文本 |
Text (formatted) |
{{ content.field_name[0]['#text'] }} |
未經html轉化的文本 |
Text (formatted) |
{{ content.field_name['#items'][0].value|striptags }} |
純文本 |
Text (formatted, long) |
{{ content.field_name[0] }} |
帶格式的文本 |
Text (formatted, long) |
{{ content.field_name[0]['#text'] }} |
未經html轉化的文本 |
Text (formatted, long) |
{{ content.field_name['#items'][0].value|striptags }} |
純文本 |
Text (formatted, long with summary) |
{{ content.field_name[0] }} |
帶格式的文本 |
Text (formatted, long with summary) |
{{ content.field_name[0]['#text'] }} |
未經html轉化的文本 |
Text (formatted, long with summary) |
{{ content.field_name['#items'][0].value|striptags }} |
純文本 |
Text (formatted, long with summary) |
{{ content.field_name['#items'][0].summary }} |
摘要 |
Text (plain) |
{{content.field_name.0 }} |
純文本 |
Text (plain, long) |
{{content.field_name.0 }} |
純文本 |
4. 列表類型 List
Field type |
How to get value |
Note |
List (float) |
{{ content.field_name[0] }} |
在管理介面Manage Display中設置該欄位顯示值key或標籤label |
List (float) |
{{ content.field_name['#items'][0].value }} |
顯示值的key |
List (integer) |
{{ content.field_name[0] }} |
在管理介面Manage Display中設置該欄位顯示值key或標籤label |
List (integer) |
{{ content.field_name['#items'][0].value }} |
顯示值的key |
List (text) |
{{ content.field_name[0] }} |
在管理介面Manage Display中設置該欄位顯示值key或標籤label |
List (text) |
{{ content.field_name['#items'][0].value }} |
顯示值的key |
5. 參照類型 Reference
Field type |
How to get value |
Note |
Fiel |
{{ content.field_name[0] }} |
值為套用file-link.html.twig 模板的html片段 |
File |
{{ file_url(content.field_name[0]['#file'].uri.value) }} |
檔案連結 |
File |
{{ content.field_name[0]['#description'] }} |
檔案描述 |
Image |
{{ file_url(content.field_name[0]['#item'].entity.uri.value) }} |
圖片連結 |
Image |
{{ content.field_name[0]['#item'].value.alt }} |
圖片alt文字 |
Image |
{{ content.field_name[0]['#item'].value.title }} |
圖片title文字 |
Image |
{{ content.field_name[0]['#item'].value.height }} |
圖片設置的高度 |
Image |
{{ content.field_name[0]['#item'].value.width }} |
圖片設置的寬度 |
Taxonomy Term |
{{ content.field_taxonomy[0]['#options'].entity.id }} |
在Manage display中將format設為Label時顯示term id |
Taxonomy Term |
{{ content.field_name[0]['#title'] }} |
在Manage display中將format設為Label顯示term label |
Taxonomy Term |
{{ content.field_name[0]['#url'] }} |
在Manage display中將format設為Label顯示term path |
啟用Media模組後出的media field。
Field type |
How to get value |
Note |
Media (image) |
{{ file_url(content.field_name[0]['#media'].field_media_image.entity.uri.value) }} |
圖片連結 |
Media (remote Video) |
{{ content.field_name }} |
站外視頻iframe |
Media (video) |
{{file_url(content.field_name[0]['#media'].field_media_video_file.entity.uri.value) }} |
影片連結 |
Media (document) |
{{ file_url(content.field_name[0]['#media'].field_media_document.entity.uri.value) }} |
檔案連結 |
延伸閱讀: