所以我有我的 hook_field_schema 定义列,并且 hook_field_widget_form 已设置并正确保存所有列值。
但是,一旦我将两个字段放入字段集中,这些值就永远不会保存或更新。我已经尝试在整个地方设置#tree => FALSE,但这也不起作用。
我错过了什么?它只是不受支持吗?我应该使用 form_alter 钩子或其他东西将它们移动到字段集中吗?
我遇到了同样的问题,找不到解决方案。在尝试了很多事情之后,结果证明是简单到不合逻辑的事情。好吧,在 Drupal 新手的眼中。
起初我有这样的东西(精简版):
$element['mymodulefieldset'] = array(
'#title' => 'Fieldset title',
'#type' => 'fieldset',
);
并将字段添加到字段集中:
$element['mymodulefieldset']['fieldname'] = array(
'#title' => "Field title",
'#type' => 'textfield',
'#default_value' => '',
);
在尝试了许多不同的场景之后,我发现下一行代码确实(有点)工作。我没有插入字段集,而是将元素变成了这样的字段集:
$element += array(
'#type' => 'fieldset',
'#tree' => true
);
然后我向元素添加了字段:
$element['fieldname'] = array(
'#title' => "Field title",
'#type' => 'textfield',
'#default_value' => '',
);
注意:#title 和 #weight 等一些变量由“主页 » 管理 » 结构 » 内容类型 » [您的内容类型]”控制,其他变量(如 #collapsible 和 #collapsed)可以在此处定义。
希望这可以帮助你!