我有一个使用自动完成小部件类型的实体引用字段。我想将小部件类型更改为“选择列表”以添加新节点,并在编辑时保持自动完成。
已经两天了,我正在研究这个。我没有找到任何解决方案。
我有一个使用自动完成小部件类型的实体引用字段。我想将小部件类型更改为“选择列表”以添加新节点,并在编辑时保持自动完成。
已经两天了,我正在研究这个。我没有找到任何解决方案。
我这样做的一种方法是使用hook_form_alter
. 创建一个自定义模块(如果您还没有(我们现在称之为 mymodule)并添加函数:
function mymodule_form_alter(&$form, &$form_state, $form_id)
在那里,您可以检查 id 以查看正在处理的表单,它应该类似于以下内容,mytype_node_form
但您也可以通过drupal_set_message(print_r($form_id, true));
在函数中执行类似的操作来相当容易地检查它。
您可以通过检查来检查您是否正在添加或更新$form_state['node']->nid
。之后,您可以通过执行以下操作来修改表单:
function mymodule_form_alter(&$form, &$form_state, $form_id)
{
// check to see if this is our form and it is a new node form (doesn't have an id yet)
if ($form_id == 'mytype_node_form' && !isset($form_state['node']->nid)) {
$form['field_coordinators']['und']['#type'] = 'select';
}
}
这只是一个开始,您可能需要更改甚至删除其他属性,但您可以通过将字段设置为使用选择列表并$form
再次检查 的结构来查看这些设置。