フォームを小枝テンプレートに送信する


9

Drupal 8でフォームをtwigテンプレートに渡すにはどうすればよいですか?

たとえば、私はこれを取得します:

フォーム:mymodule / src / Form / MyForm.php

それから私のコントローラーで:

public function myController() {

    ??????

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

mytemplate.html.twig

{{ ????? }}

エンティティオブジェクトを前処理/テンプレートで使用できるようにするのか、それともエンティティのレンダリングビューを使用するのですか?
クライヴ

@Cliveエンティティのレンダリングされたビューをテンプレートに送信できるようにしてから、これを表示します。
rpayanm 2015

1
「レンダリングエンティティ」などはありません。ノードとブロックは表示するために同様のAPIを持っていますが、フォームはまったく異なり、エンティティではありません。特定の質問をすると、あなたを助ける答えが得られます。エンティティの種類。デフォルトの出力で表示するだけですか、それとも独自のテンプレートで使用しますか
Berdir

次に、質問を編集します。
rpayanm 2015

それでもまだ十分な情報ではありません。繰り返しますが、どのようなエンティティを出力しますか?そして、あなたのテンプレートは正確に何をしていますか?要するに、あなたの入力と期待される出力は何ですか。また、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.