0

当使用 EntityReference 字段并在 hook_form_alter() 中使用 ['access'] 隐藏该字段时,提交表单后 $form_state 输入对于该字段为空。

我有字段 field_to_a ,它是内容类型 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 错误。
  • 当我使用 NOT 时$form['field_to_a']['#access'] = FALSE;:我有 $form_state['input']['field_to_a'] 正确并且节点被保存而没有任何错误。

当我使用任何其他字段时,我可以使用 ['#access'] = FALSE 并且不会丢失 $form_state 中该字段的输入。

这件事有什么解决方案或解决方法吗?这是错误还是正常行为?

谢谢

4

1 回答 1

0

首先检查您收到的日志。

尝试这个 :

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

然后检查您的日志报告。您将收到您的价值$form_state['values']

它可能会帮助你

于 2014-10-30T13:38:13.160 回答