ส่งแบบฟอร์มไปยังแม่แบบกิ่งไม้


9

ฉันจะส่งแบบฟอร์มไปยังเทมเพลตกิ่งใน Drupal 8 ได้อย่างไร

ตัวอย่างเช่นฉันได้รับสิ่งนี้:

แบบฟอร์ม: mymodule / src / Form / MyForm.php

จากนั้นในตัวควบคุมของฉัน:

public function myController() {

    ??????

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

mytemplate.html.twig

{{ ????? }}

คุณหมายถึงคุณต้องการให้วัตถุเอนทิตีมีอยู่ใน preprocess / เทมเพลตหรือคุณต้องการให้มุมมองที่แสดงผลของเอนทิตีพร้อมใช้งานหรือไม่?
ไคลฟ์

@Clive ฉันต้องการให้มุมมองการแสดงผลของเอนทิตีพร้อมใช้งานสำหรับส่งไปยังเทมเพลตแล้วสิ่งนี้จะแสดง
rpayanm

1
ไม่มีสิ่งเช่น "เอนทิตีแสดงผล" โหนดและบล็อกมี API ที่คล้ายกันเพื่อแสดง แต่รูปแบบนั้นค่อนข้างแตกต่างและแน่นอนว่าไม่ใช่เอนทิตี ถามคำถามเฉพาะและคุณจะได้รับคำตอบที่จะช่วยคุณ เอนทิตี้แบบไหนที่คุณต้องการดูด้วยเอาต์พุตดีฟอลต์หรือใช้ใน
เท็มเพลต

ให้ฉันแก้ไขคำถาม
rpayanm

ยังมีข้อมูลไม่เพียงพอ ดังนั้นอีกครั้งคุณต้องการเอาท์พุทประเภทใด และแม่แบบของคุณทำอะไรกันแน่ กล่าวโดยย่อคืออินพุตและเอาต์พุตที่คุณคาดหวัง รวมถึงการใช้งาน hook_theme () ของคุณด้วย
Berdir

คำตอบ:


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 }}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.