drupal - 为什么我不能将字段移动到 Drupal 表单中的字段集中 - 无法获取当前值

标签 drupal drupal-7 form-api drupal-fields hook-form-alter

我在 Drupal 7 中有一个节点表单,为了为用户简化它,我想使用垂直选项卡功能将它分成几个部分。

使用 hook_form_FORMID_alter() 我可以毫不费力地移动字段。保存节点时,它会正确写入值,并且它们会出现在节点 View 中。

但是当我重新编辑节点时,移动字段的任何值都没有设置,所以我实际上丢失了数据。我尝试了各种选项,包括更改 form_state['fields'][field][langcode] 中的 array_parents 值。

(我想知道在 pre_render 期间移动字段是否会更好。)

有什么想法吗?

最佳答案

字段 API 字段默认放置在容器字段类型中。如果要将它们转换为垂直选项卡中的字段集,可以执行以下操作:

$form['field_tags']['#type'] = 'fieldset';
$form['field_tags']['#title'] = 'Tags';
$form['field_tags']['#group'] = 'additional_settings';

更好的解决方案是使用新的 Field Group module因此您可以通过 UI 而不是代码进行这些修改。

关于drupal - 为什么我不能将字段移动到 Drupal 表单中的字段集中 - 无法获取当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4861441/

相关文章:

drupal-7 - 如何在 Drupal 7 中通过电子邮件地址加载用户对象?

Drupal 7 - 删除表格第一列中的复选框

php - 为什么我的 drupal 表单提交函数没有被调用?

javascript - Vuejs 和 Drupal

apache - 将内部路径重定向到虚拟主机

html - 使用对象 HTML 加载网页

javascript - 表单上的 Drupal 动态选择

php - 为什么 drupal 很慢?

德鲁巴 8 : How to stop drupal stocking sessions?

javascript - SCRIPT438 : Object doesn't support property or method 'on'