web-dev-qa-db-ja.com

カスタムフォームモジュールのカスタムテキスト/ html

私は このチュートリアル をフォローしていますが、カスタムフォームをDrupal 8モジュールとして既に作成しています。

フォームにカスタムtext/htmlを追加するにはどうすればよいですか。つまり、誰かが*.routing.ymlで示されたパスにアクセスしたときに、フォームフィールドだけでなく、イントロhtml /テキストも表示したいと思います。

私はフォームビルディングがここにあることを知っています:

public function buildForm(array $form, FormStateInterface $form_state) {

$form['name_surname'] = array(
  '#type' => 'textfield',
  '#title' => t('Name and surname:'),
  '#required' => TRUE,
);
...
}

しかし、フィールド間またはその上にカスタムhtml /テキストブロックのみを取得するには、どの種類のエントリ(または#type)を挿入すればよいかわかりません。

7
PolGraphic

#field_prefix#field_suffixおよび#descriptionトリックを行う必要があります。 FormElement について詳しくはこちらをご覧ください。あなたもできると思います 要素をタイプmarkupに設定し、次に 使用する #markupだけでHTMLの要素を作成します( ya.teckの回答を参照 )。

7
Will

フィールド間またはその上にカスタムhtml/textブロックのみを取得するには、どのような種類のエントリ(または#type)を挿入する必要がありますか?

Item 要素タイプは、表示のみのフォーム要素にオプションのタイトルと説明を提供します。

$form['help'] = [
  '#type' => 'item',
  '#title' => t('Block title'),
  '#markup' => t('Block content'),
];

次のように#markupレンダー配列キーを使用して、レンダー配列に任意のコンテンツを追加することもできます。

$form['text']['#markup'] = t('Some text.');
17
ya.teck

markupを使用すると、Htmlマークアップをform.forインスタンスに追加できます。

$form['help'] = [
    '#type' => 'markup',
    '#markup' => '<a href="#">Find out more</a>',
    '#weight' => '3',

];
0
Yusef