При использовании ['#access'] в hook_form_alter() для поля, я теряю 'значение поля $form по умолчанию' и вход $form_state

При использовании поля EntityReference и в hook_form_alter(), скрывающем это поле с ['access'], чем после отправки формы $form_state ввод для этого поля будет пустым.

У меня есть поле field_to_a, которое является полем entityrefence для типа контента B, который ссылается на тип контента A.

Я использую hook_form_alter(), в которой я использую строку как $form['field_to_a']['#access'] = FALSE; а также установка этого поля на определенное значение

Когда я нажимаю кнопку "Отправить" (моя кнопка "Сохранить") на узле добавления:

  • Когда я использую $form['field_to_a']['#access'] = FALSE;: Я теряю $form_state['input']['field_to_a'] (не существует) и $form['field_to_a']['und'][0]['target_id']['#default_value'] (пусто) и у меня есть ошибки PHP.
  • Когда я использую НЕ $form['field_to_a']['#access'] = FALSE;: У меня есть $form_state ['input'] ['field_to_a'] правильно, и узел сохраняется без ошибок.

Когда я использую любое другое поле, я могу использовать ['#access'] = FALSE и не терять входные данные в $form_state для этого поля.

Есть ли решение или обходной путь для этой вещи? Это ошибка или нормальное поведение?

Спасибо

1 ответ

Сначала проверьте журнал, что вы получили.

попробуй это:

function hook_submit($form, &$form_state) {
    watchdog("Your Form data ", '<pre>'.print_r($form_state, true).'</pre>'); 
}

Затем проверьте свой отчет журнала. вы получите свою ценность в $form_state['values']

Может тебе поможет

Другие вопросы по тегам