我使用 drupal 7 和 Entity API 来开发一个模块。我有一个实体来记录客户信息。我希望使用 image_field 让客户上传他们的标志。所以我有这个功能:
function silver_client_enable()
{
field_cache_clear();
field_associate_fields("silver_client");
if(field_info_field('logo'))
return;
$field = array(
'field_name' => 'logo',
'cadinality' => 1,
'type' => 'image',
);
field_create_field($field);
$instance = array(
'field_name' => 'logo',
'entity_type' => 'silver_client',
'bundle' => 'silver_client',
'label' => 'Logo',
'description' => 'Logo',
'display' => array(
'default' => array('label' => 'hidden')
),
'settings' => array(
'file_directory' => '/logo',
),
'widget' => array(
'type' => 'image_image',
),
);
field_create_instance($instance);
}
在实体创建/编辑表单中,我使用:
field_attach_form('silver_client', $client, $form, $form_state);
附加领域。
当我调用此表单时,图像上传字段已更正显示。我可以使用它来上传文件以提供服务。
在表单提交功能中,我将实体保存为:
entity_save('silver_client', $client);
但是,在我按下保存按钮后,实体表已正确保存。字段表不是。field_data_logo 和 field_revision_logo 都是空的。
我相信 Entity API 负责检索和保存附加字段。有人可以告诉我我的代码有什么问题吗?谢谢你。