web-dev-qa-db-ja.com

hook_form_alter()にデフォルト値を設定できません

user_register_formと呼ばれます。このフックでは、テキストフィールドのデフォルト値を設定しようとしましたが、機能しません。可能なすべての構文を試しました#default_value#valuevaluedefault_value、属性配列のイベント。

これは私のコードです。

function pre_registration_form_user_register_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  $form['field_code_postal']['#cache']['max-age'] = 0;
  $form['field_code_postal']['#default_value'] = 'COUCOU';
  $form['field_code_postal']['#value'] = 'COUCOU';
  $form['field_code_postal']['value'] = 'COUCOU';
  $form['field_code_postal']['value']['#value'] = 'COUCOU';
  $form['field_code_postal']['value']['#default_value'] = 'COUCOU';
  $form['field_code_postal']['value']['value'] = 'COUCOU';
  $form['field_code_postal']['value']['default_value'] = 'COUCOU';
  $form['field_code_postal']['default_value'] = 'COUCOU';

  $form['field_code_postal']['#attributes']['value'] = 'COUCOU1';
  $form['field_code_postal']['#attributes']['#value'] = 'COUCOU2';
  $form['field_code_postal']['#attributes']['default_value'] = 'COUCOU3';
  $form['field_code_postal']['#attributes']['#default_value'] = 'COUCOU4';
}

デフォルト値を設定するにはどうすればよいですか?

4
Greg__

このドキュメント によると、次のようなことができます

 $form['field_code_postal']['widget'][0]['value']['#default_value'] ='COUCOU1';

エンティティ参照フィールドに入力する場合は、他の人のために役立ちます(ファイルもdrupal 8)のエンティティです)使用

 $form['field_image']['widget'][0]['target_id']['#default_value']= $file; // 
4
Yusef

私の場合、カスタムコンテンツタイプのデフォルトの自動ノードタイトルが必要でした。これが、それを実現する方法です。node_formのIDを知った後、以下で変更したいhook_form_FORM_ID_alter()を作成し、構成するコンテンツを出力しますkint($form['title']);によるタイトルフィールドこの後、フォームタイトルフィールドの配列構造を決定することができ、以下のコードによってそれを達成しました:$form['title']['widget'][0]['value']['#default_value'] = 'my custom node title';(Drupal 8.4x)

2
Nicholas

私の場合、以下のコードはDrupal 8で完全に機能しました:

$form['field_idea_department']['widget'][0]['value']['#default_value'] = "default values";
0
shifali baghel