Forms 在hook#u form_alter()中为字段使用[';#access';]时,我失去了'$表单字段默认值';和$form_状态输入

Forms 在hook#u form_alter()中为字段使用[';#access';]时,我失去了'$表单字段默认值';和$form_状态输入,forms,drupal-7,field,hide,hook-form-alter,Forms,Drupal 7,Field,Hide,Hook Form Alter,当使用EntityReference字段并在hook_form_alter()中使用['access']隐藏该字段时,提交表单$form_后,该字段的状态输入为空 我有字段\到\ a,这是内容类型B上引用内容类型a的EntityReference字段 我使用的是hook_form_alter(),其中我使用了一行,如$form['field_to_a']['access']=FALSE并将此字段设置为特定值 当我按下节点添加上的提交按钮(我的保存按钮)时: 当我使用$form['field_t

当使用EntityReference字段并在hook_form_alter()中使用['access']隐藏该字段时,提交表单$form_后,该字段的状态输入为空

我有字段\到\ a,这是内容类型B上引用内容类型a的EntityReference字段

我使用的是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']['.\u default_value']
    (空)并且我有PHP错误
  • 当我使用NOT
    $form['field_to_a']['#access']=FALSE:我有$form_state['input']['field_to_a']正确,节点保存时没有任何错误
当我使用任何其他字段时,我可以使用['#access']=FALSE,并且不会丢失该字段$form_状态的输入

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


谢谢

首先检查您收到的内容

试试这个:

function hook_submit($form, &$form_state) {
    watchdog("Your Form data ", '<pre>'.print_r($form_state, true).'</pre>'); 
}
函数hook\u submit($form,&$form\u state){
watchdog(“您的表单数据”),''.print\r($Form\u state,true)。'';
}
然后检查你的日志报告。您将在
$form\u state['values']中收到您的值。

它可能会帮助您

hook\u field\u attach\u form()需要使用,因为hook\u form\u alter()会释放默认值