Drupal 7 Drupal allowed_values_函数在创建字段时不会被调用
由于某些原因,在显示用户绑定上的字段时,我的allowed_values_函数从未被调用。代码:Drupal 7 Drupal allowed_values_函数在创建字段时不会被调用,drupal-7,drupal-field-api,Drupal 7,Drupal Field Api,由于某些原因,在显示用户绑定上的字段时,我的allowed_values_函数从未被调用。代码: function get_business_units() { $options = entity_load('business_unit', FALSE, NULL, FALSE); $opt = bu_to_list_values($options); return $opt; } function MYMODULE_enable() { if (!field
function get_business_units()
{
$options = entity_load('business_unit', FALSE, NULL, FALSE);
$opt = bu_to_list_values($options);
return $opt;
}
function MYMODULE_enable()
{
if (!field_info_field('field_user_business_unit')) {
$field = array(
'field_name' => 'field_user_business_unit',
'type' => 'text',
'settings' => array(
'allowed_values' => array(),
'allowed_values_function' => 'get_business_units',
)
);
field_create_field($field);
// Create the instance on the bundle.
$instance = array(
'field_name' => 'field_user_business_unit',
'entity_type' => 'user',
'label' => 'Business Unit',
'bundle' => 'user',
'required' => FALSE,
'settings' => array(
'user_register_form' => 1,
),
'widget' => array(
'type' => 'options_select',
),
);
field_create_instance($instance);
}
}
该字段已创建,甚至在编辑用户信息时显示在用户的“编辑”页面上。但唯一的值是“选择”或“无”。我的方法从未被调用(我甚至放置了一个调试点)。这些都在MYMODULE.install文件中。您的
获取业务单元()
函数需要位于MYMODULE.module
文件中;正常的Drupal引导中不包括.install
文件。您尝试过吗
drush功能还原MYMODULE?问题是:
'type'=>'text'
您必须使用:“type”=>“list\u text”
允许的值对于文本类型来说是没有意义的。这也是我最初的想法,但它仍然没有被调用。我将get_business_units()移到了MYMODULE.module文件中,但没有转到。已清除缓存。我可以用devel执行php代码,然后调用它。我的$field结构有问题吗?这些设置应该在实例或小部件级别定义吗?你能想到其他的吗?我还有一个月的时间来完成我的计算机科学“顶点”项目,这使得(很多)功能都停止了。