快轉到主要內容

Drupal 9 Twig 獲取field值速查表

·1006 字·3 分鐘
Y Cheung
作者
Y Cheung
Blogger, Programer & Traveler.
目錄

在Drupal 8 和 Drupal 9 的 twig 模板開發中,常常會需要輸出指定的field,本文列出常見類型的field取值方法,以便查詢。

一般類型 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'] }} 值為連結文字

數字類型 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 }} 顯示未經格式化的小數

文字類型 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 }} 純文本

列表類型 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

參照類型 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模組後出的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) }} 檔案連結

Reference
#

相關文章

drupal8 dursh config-import使用簡介

·285 字·1 分鐘
GIT CLONE 代碼 正常流程 stander 安裝drupal8 修改/sites/default/settings.php 指定 config 文件夾位置 1$config_directories['sync'] = 'sites/config/sync'; 執行drush命令導入config 1drush config-import 提示報錯:

在DRUPAL 7自定義多行表格表單中設置添加行按鈕與刪除行按鈕

·1506 字·4 分鐘
標題有點拗口,YCHEUNG也想不出來更好的中文表達,沒懂的朋友直接看內文吧(或者看url的英文標題)。 這種功能的表格表單YCHEUNG已經嘗試了五六種方式來寫,但都不滿意。不然就是功能上多少有缺陷,比如無法使用drupal 7 form API的日期type,不然就是很繁瑣的一堆代碼和判斷,看着都頭暈……等,今天終於試出了一個令YCHEUNG較滿意的寫法!分享給大家,也是一種記錄,YCHEUNG有預感,之後還會寫很多個這樣的表單QAQ

drupal 7中操作遠程oracle數據庫

·584 字·2 分鐘
系統環境需求 # PHP環境最好是 PHP 7,系統最好是紅帽系。 操作步驟 # 安裝Oracle Instant Client # 在Oracle官網頁面中找到系統對應的客戶端下載安裝,比如Y CHEUNG選擇的就是 Instant Client Downloads for Linux x86-64 ,Fedora可以下載RPM包直接安裝,非RedHat系統的可能需要先編譯,用make install的方式安裝。

Drupal7中自定义表格输入

·1240 字·3 分鐘
Drupal默认的节点表单(entity form)输入有时候并不能满足我们的需求,比如我想做一个类似excel表格输入形式的表单呢? = DEMO点这里 (PS. 用Pantheon的sandbox做了一个随意折腾的drupal站点,真的是折腾死我了= =) 首先,新建一个自定义模块,在你的*.module文件中hook_menu() 指定一个页面路径,设置页面调用表单,比如这样: