ใช้ตะขอฐานฟิลด์
หากเทมเพลตนี้ไม่มีมาร์กอัปควรส่งออกค่าฟิลด์ {{ item.content }}
คุณต้องใช้รหัสหลักในการประมวลผลค่าเหล่านี้โดยกำหนด hook ฐาน
ดูตัวอย่าง comment_theme():
/**
* ใช้ hook_theme()
*/
ฟังก์ชัน comment_theme() {
กลับ [
...
'field__comment' => [
'เบสฮุก' => 'ฟิลด์',
]
];
}
ในกรณีนี้ การเริ่มต้นชื่อ hook ของธีมด้วย hook พื้นฐานนั้นยังไม่เพียงพอ แต่ยังต้องมีเครื่องหมายขีดล่าง: field__raw
.
การใช้ hook ของธีมที่กำหนดเอง
ไม่แนะนำ เพื่อการสาธิต คุณสามารถคัดลอกโค้ดหลักที่เกี่ยวข้องไปยังเทมเพลตของคุณเอง:
mymodule.โมดูล:
ฟังก์ชัน mymodule_theme($existing, $type, $theme, $path) {
กลับ [
'field_raw' => [
'องค์ประกอบการแสดงผล' => 'องค์ประกอบ',
]
];
}
ฟังก์ชัน template_preprocess_field_raw(&$ตัวแปร, $hook) {
$องค์ประกอบ = $ตัวแปร['องค์ประกอบ'];
$ตัวแปร['รายการ'] = [];
$เดลต้า = 0;
ในขณะที่ (!empty($element[$delta])) {
$variables['items'][$delta]['content'] = $element[$delta];
$เดลต้า++;
}
}
ในกรณีนี้ คุณสามารถเลือกชื่อแบบสุ่มสำหรับ hook ของธีมได้ แต่ต้องไม่ขึ้นต้นด้วย สนาม__
.
เปลี่ยนไปใช้เทมเพลตนี้ในฟอร์แมตฟิลด์ที่กำหนดเอง:
มุมมองฟังก์ชันสาธารณะ (FieldItemListInterface $items, $langcode = NULL) {
$elements = parent::view($items, $langcode);
ถ้า (isset($elements['#theme'])) {
$elements['#theme'] = 'field_raw';
}
ส่งคืนองค์ประกอบ $;
}
และสุดท้ายวางเทมเพลตขั้นต่ำในโฟลเดอร์โมดูล
mymodule/templates/field-raw.html.twig
{%- สำหรับรายการในรายการ %}{{ item.content }}{% endfor -%}