मैं ड्रूपल 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;
}
1
fazalerabbi 24 जुलाई 2017, 10:25

4 जवाब

सबसे बढ़िया उत्तर

ड्रुपल 8 एंटिटी फॉर्म में फ़ील्ड को छुपाने के लिए दो चरण हैं।

  1. यदि आप किसी मौजूदा फ़ील्ड को छिपाना चाहते हैं तो आप फ़ॉर्म को बदल सकते हैं और उस फ़ील्ड को इस रूप में अपडेट कर सकते हैं

    $form['your_field_name']['widget'][0]['value']['#type'] = 'hidden';

  2. आप https://www.drupal.org/project/field_hidden का उपयोग कर सकते हैं और इसे सक्षम करके मॉड्यूल, निकाय प्रकार के 'प्रपत्र प्रदर्शन प्रबंधित करें' संवाद में किसी फ़ील्ड के लिए 'हिडन फ़ील्ड' विजेट का चयन करें।

7
Pupil 16 अगस्त 2019, 14:59

यदि आप केवल UI के साथ काम करते हैं, तो आप "प्रपत्र प्रदर्शन प्रबंधित करें" में किसी फ़ील्ड के प्रदर्शन को अक्षम कर सकते हैं। लेकिन मुझे लगता है कि आप अपना खुद का कोडित फॉर्म मांगते हैं ... यह ऐसा है:

$form['my_hidden'] = array(
    '#type' => 'hidden',
    '#value' => $my_hidden_value, 
);
1
Arioch 24 जुलाई 2017, 21:57

आप इसे आजमा सकते हैं:

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;
}
0
Arioch 25 जुलाई 2017, 12:17

आप छिपाने के लिए फ़ील्ड बना सकते हैं जैसे आप किसी अन्य फ़ील्ड को परिभाषित करते हैं और फिर एंटिटी फॉर्म के लिए बिल्डफॉर्म विधि में निम्नलिखित सेट करते हैं

$form['field_name']['widget'][0]['value']['#type'] = 'hidden';

इससे क्षेत्र एक छिपा हुआ क्षेत्र बन जाएगा

0
anoopjohn 6 पद 2019, 05:19