連絡先フォームにドロップダウンのような選択フィールドを追加して、ユーザーが連絡する理由(連絡先、カスタマーサポートなど)を選択できるようにしたい
この(優れた)回答 連絡先フォームへのチェックボックスの追加 に基づいて、チェックボックス付きのフィールドを作成できました:
ソース: 連絡先フォームにチェックボックスを追加
Selectでそれを行うにはどうすればよいですか?
解決策:
「管理フォーム表示」で選択できます。 「ウィジェット」列では、「リストを選択」を選択できます(スクリーンショットを参照)
あなたが参照した質問はそれを明示的に変更しますfromリストを選択(これはリストフィールドのデフォルトです)をチェックボックスに変更します。あなたがする必要があるのは、その最後のステップをスキップしてそれを選択リストに保持することです、そしてあなたはあなたの選択を持っています。
フォームの構築方法に応じて、buildFormまたはフックのオーバーライドに追加できる選択フォーム要素があります。
$form['example_select'] = [
'#type' => 'select',
'#title' => $this->t('Select element'),
'#options' => [
'1' => $this->t('Contact'),
'2' => $this->t('Other'),
'3' => $this->t('Customer Support'),
],
];
これはDrupalドキュメントからです: https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Render!Element!Select.php/ class/Select/8.2.x 。