При использовании ['#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']
Может тебе поможет