मैं ड्रूपल 8 का उपयोग कर रहा हूं, मेरे पास एक इकाई है, मैं इकाई फॉर्म में एक छुपा प्रकार फ़ील्ड जोड़ना चाहता हूं। मैं छुपा फ़ील्ड प्रकार कैसे जोड़ सकता हूं? नीचे की तरह
<form>
<input type='hidden' name='my_hidden' />
</form>
कोड जनरेटिंग फॉर्म नीचे दिया गया है:
public static function baseFieldDefinitions(EntityTypeInterface $entity_type)
{
$fields = parent::baseFieldDefinitions($entity_type);
$fields['id'] = BaseFieldDefinition::create('integer')
->setLabel(t('ID'))
->setDescription(t('The ID of the Timeslot entity.'))
->setReadOnly(TRUE);
return $fields;
}
4 जवाब
ड्रुपल 8 एंटिटी फॉर्म में फ़ील्ड को छुपाने के लिए दो चरण हैं।
यदि आप किसी मौजूदा फ़ील्ड को छिपाना चाहते हैं तो आप फ़ॉर्म को बदल सकते हैं और उस फ़ील्ड को इस रूप में अपडेट कर सकते हैं
$form['your_field_name']['widget'][0]['value']['#type'] = 'hidden';
आप https://www.drupal.org/project/field_hidden का उपयोग कर सकते हैं और इसे सक्षम करके मॉड्यूल, निकाय प्रकार के 'प्रपत्र प्रदर्शन प्रबंधित करें' संवाद में किसी फ़ील्ड के लिए 'हिडन फ़ील्ड' विजेट का चयन करें।
यदि आप केवल UI के साथ काम करते हैं, तो आप "प्रपत्र प्रदर्शन प्रबंधित करें" में किसी फ़ील्ड के प्रदर्शन को अक्षम कर सकते हैं। लेकिन मुझे लगता है कि आप अपना खुद का कोडित फॉर्म मांगते हैं ... यह ऐसा है:
$form['my_hidden'] = array(
'#type' => 'hidden',
'#value' => $my_hidden_value,
);
आप इसे आजमा सकते हैं:
public static function baseFieldDefinitions(EntityTypeInterface $entity_type)
{
$fields = parent::baseFieldDefinitions($entity_type);
$fields['id'] = BaseFieldDefinition::create('integer')
->setLabel(t('ID'))
->setDescription(t('The ID of the Timeslot entity.'))
->setReadOnly(TRUE)
->setDisplayOptions('form', array(
'type' => 'hidden',
'weight' => -5,
);
return $fields;
}
आप छिपाने के लिए फ़ील्ड बना सकते हैं जैसे आप किसी अन्य फ़ील्ड को परिभाषित करते हैं और फिर एंटिटी फॉर्म के लिए बिल्डफॉर्म विधि में निम्नलिखित सेट करते हैं
$form['field_name']['widget'][0]['value']['#type'] = 'hidden';
इससे क्षेत्र एक छिपा हुआ क्षेत्र बन जाएगा
संबंधित सवाल
नए सवाल
drupal
Drupal PHP में लिखा गया एक ओपन सोर्स CMS फ्रेमवर्क है। * महत्वपूर्ण * इस टैग का उपयोग करने के बजाय, अपने प्रश्न को सीधे https://drupal.stackexchange.com/ पर पोस्ट करने पर विचार करें। इसके अलावा, प्रमुख संस्करणों के बीच पर्याप्त अंतर के कारण, ड्रुपल -6, ड्रुपल -7 या ड्रुपल -8 टैग में से किसी एक का उपयोग करने पर विचार करें।