टहनी टेम्पलेट के लिए एक फॉर्म भेजें


9

मैं Drupal 8 में टहलना टेम्प्लेट में एक फॉर्म कैसे पास कर सकता हूं?

उदाहरण के लिए, मुझे यह मिलता है:

एक फ़ॉर्म: mymodule / src / फ़ॉर्म / MyForm.php

फिर मेरे नियंत्रक पर:

public function myController() {

    ??????

    return [
        '#theme' => 'mytemplate',
        ??????
        ];
}

mytemplate.html.twig

{{ ????? }}

क्या आपका मतलब है कि आप प्रीप्रोसेस / टेम्प्लेट में उपलब्ध इकाई वस्तु को पसंद करेंगे, या आप उपलब्ध इकाई के प्रदान किए गए दृश्य को पसंद करेंगे?
क्लाइव

@ क्लिक मैं टेम्पलेट को भेजने के लिए उपलब्ध इकाई का प्रदान किया गया दृश्य चाहता हूं और फिर यह दिखाता हूं।
rpayanm

1
"रेंडर एंटिटी" जैसी कोई चीज नहीं है। नोड्स और ब्लॉक्स में प्रदर्शित होने के लिए समान एपीआई है, लेकिन फॉर्म काफी अलग हैं और निश्चित रूप से एक इकाई नहीं हैं। एक विशिष्ट प्रश्न पूछें और आपको एक उत्तर मिलेगा जो आपकी सहायता करेगा। किस तरह की संस्था, क्या आप केवल डिफ़ॉल्ट आउटपुट के साथ देखना चाहते हैं, या इसे अपने स्वयं के टेम्पलेट में उपयोग करना चाहते हैं ...
Berdir

फिर मैं प्रश्न संपादित करता हूं।
21

यह अभी भी पर्याप्त जानकारी नहीं है। तो फिर, आप किस प्रकार की इकाई का उत्पादन करना चाहते हैं? और आपका टेम्पलेट वास्तव में क्या कर रहा है। संक्षेप में, आपका इनपुट और अपेक्षित आउटपुट क्या है। इसके अलावा अपने hook_theme () कार्यान्वयन को शामिल करें।
बर्दिर

जवाबों:


14

ठीक है, मैंने इसे किया, किसी को भी इसकी आवश्यकता है:

public function pageAction() {
  $myform = \Drupal::formBuilder()->getForm('Drupal\[mymodule]\Form\[myformclass]');
  // If you want modify the form:
  $myform['field']['#value'] = 'From my controller';

  $build = [
    '#theme' => 'mytemplate'
    '#form' => $myform,
  ];
}

टहनी में:

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