私はフィールドmy_consultant_id
は「非表示の整数」タイプのフィールドであり、ウィジェットのタイプは「非表示のフィールド」です。
hook_form_alter を使用して、このフィールドに値を割り当てています
function threebl_summary_report_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'eck__entity__form_add_summary_report_comparative_client_group') {
global $user;
$form['field_created_by']['und'][0]['#default_value'] = (int) $user->uid;
}
}
ただし、そのフィールドの値を設定することはできません。
フォームを検査すると、次のようなフィールドのhtmlコードが表示されます。
<div class="field-type-field-hidden-integer field-name-field-my-consultant-id field-widget-field-hidden form-wrapper" id="edit-field-my-consultant-id">
前もって感謝します。
フォームの検証ハンドラーでなんとかしました。検証ハンドラーを使用して、送信する前にフォーム変数に値を割り当てました。
以下のようなフォームの変更フック呼び出し検証ハンドラー
$form['#validate'][] = 'my_module_name_form_validate';
そして以下は検証ハンドラ関数コードです
function my_module_name_form_validate(&$form, &$form_state) {
$form['field_my_field']['#parents'] = array('field_my_field');
form_set_value($form['field_my_field'],array('und' => array(0 => array('value' => $new_value))),$form_state);
}
参考のために link
デフォルト値がないと思います。
試す
$form["my_consultant_id"][LANGUAGE_NONE][0]['value']['#default_value'] = (int)$user->uid;