कच्चे क्षेत्र मान को टहनी टेम्पलेट में कैसे प्राप्त करूं?


27

myfield एक सादा पाठ क्षेत्र है। {{ content.field_myfield }}HTML मार्कअप और फ़ील्ड लेबल के साथ फ़ील्ड प्रदान करता है।

मैं क्षेत्र के कच्चे मूल्य को कैसे प्रस्तुत करूं? {{ content.field_myfield.value }}काम नहीं करता है।

जवाबों:


45

{{ entity.field_name.value }} असली कच्चे मूल्य प्राप्त करने के लिए, टैग और एन्कोडिंग शामिल हैं।

  • उदाहरण: {{ node.body.value }}
  • परिणाम: <p>Batman &amp; Robin</p>

{{ content.field_name.0 }} कच्चे मान माइनस टैग और एन्कोडिंग पाने के लिए।

  • उदाहरण: {{ content.body.0 }}
  • परिणाम: Batman & Robin

कच्चा

यदि संभव हो तो इस फ़िल्टर से बचा जाना चाहिए, खासकर यदि आप डेटा को आउटपुट कर रहे हैं जो उपयोगकर्ता द्वारा दर्ज किया जा सकता है। इस पेज को देखेंDrupal 8 में ऑटो-एस्केप के बारे में अधिक जानकारी के लिए को ।

स्रोत: फ़िल्टर्स - टवीग टेम्पलेट में चर को संशोधित करना

कच्चे फ़िल्टर का मान "सुरक्षित" होने के रूप में होता है, जिसका अर्थ है कि स्वचालित बचने वाले वातावरण में यह चर सक्षम नहीं होगा यदि कच्चा इसे लागू किया गया अंतिम फ़िल्टर है

स्रोत: टहनी के आधिकारिक डॉक्स


उदाहरण के लिए, आप उपयोग कर सकते हैं:

{{ node.body.value|striptags }}
{{ paragraph.field_text.value|striptags }}

टहनी का उपयोग करने के साथ समस्या । स्ट्रिपटेग html संस्थाओं की दोहरी एन्कोडिंग है, मार्कअप नहीं, इसलिए & बन जाता है और फिर & amp; - बरदीर


6
सामग्री के उदाहरण सही नहीं हैं। Drupal.stackexchange.com/questions/198694/… देखें । आप जो उपयोग कर सकते हैं वह content.field_text.0 है, फिर आपको केवल फ़ील्ड टेम्पलेट के बिना, पहले फ़ील्ड आइटम का आंतरिक भाग मिलता है। यह विशेष रूप से सूचियों, संदर्भों इत्यादि के लिए उपयोगी है, जहाँ आप प्रारूपित आउटपुट चाहते हैं, न कि कच्चे मान
बर्दिर

2
बेहतर है, लेकिन अभी भी काफी सही नहीं है। content.field_myfield | स्ट्रिपटैग काम नहीं करता है, आप एक रेंडर सरणी को पास नहीं कर सकते हैं। आपको इसे पहले रेंडर करना होगा और फिर उसी के माध्यम से पास करना होगा। स्ट्रिपटैग्स और इतने पर भी और अन्य पात्रों के साथ समस्याएं हैं जो दो बार एन्कोड हो सकती हैं, इसलिए आपको वास्तव में स्ट्रिपटैग की जरूरत है।
बर्दिर

2
कच्चे | html टैग छोड़ देता है और उन्हें प्रिंट करता है। स्ट्रिपटेग के साथ समस्या तब HTML संस्थाओं की दोहरी एन्कोडिंग है, मार्कअप नहीं, इसलिए & amp; और फिर & amp;
बर्दिर

2
यह डबल भागने नहीं है, आप इसे देख सकते हैं <और >सही ढंग से प्रदर्शित कर रहे हैं। इससे पहले कि आप इसे आउटपुट करें, एम्परसैंड शायद पहले से ही बच गया है। लेकिन सवाल एक सादे पाठ क्षेत्र के बारे में है , न कि पाठ फ़िल्टर द्वारा संसाधित एक स्वरूपित पाठ क्षेत्र । (यह पूछे जाने वाले सवाल का जवाब नहीं देने के लिए, कच्चे मूल्य (यदि कोई वास्तव में चाहता है) अभी भी अंदर रहेगा .valueऔर सुरक्षा कारणों से,
ट्विग

2
हां, यह मेरा मतलब है (ऑटो-एस्केप = एकल भागने)। तो आउटपुट फ़ील्ड मान के लिए आपके उदाहरण एकदम सही हैं, केवल स्ट्रिपटेग फ़िल्टर के बिना, क्योंकि यह बदसूरत डबल एस्केप्ड आउटपुट का उत्पादन करेगा। (BTW &amp;आपके उदाहरण में आउटपुट गलत है, यह तब तक नहीं होता है जब तक कि फ़ील्ड सामग्री पहले से ही एक बार बच न जाए)।
4k4

5

आप इस मामले में ट्विग फील्ड वैल्यू मॉड्यूल का उपयोग कर सकते हैं । इस मॉड्यूल को स्थापित करने के बाद आपको क्षेत्र रेंडर सरणियों से आंशिक डेटा तक पहुंच प्राप्त होगी। पूर्व के लिए।

{{ content.field_name|field_value }}
content.field_image|field_target_entity.uri.value

आदि परियोजनाओं पृष्ठ पर अधिक जानकारी


1
{{ content.body | raw }} 

एक टहनी टेम्पलेट में कच्चे क्षेत्र का मूल्य प्राप्त करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.