将图像_字段附加到drupal 7中的实体
我使用Drupal7和实体API来开发一个模块。我有一个实体来记录客户信息。我希望使用图像_字段,让客户上传他们的标志。所以我有这个函数:将图像_字段附加到drupal 7中的实体,drupal,drupal-fields,imagefield,drupal-entities,Drupal,Drupal Fields,Imagefield,Drupal Entities,我使用Drupal7和实体API来开发一个模块。我有一个实体来记录客户信息。我希望使用图像_字段,让客户上传他们的标志。所以我有这个函数: function silver_client_enable() { field_cache_clear(); field_associate_fields("silver_client"); if(field_info_field('logo')) return; $field = array( 'field_na
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);
但是,在按下保存按钮后,实体表被正确保存。字段表不可用。字段\数据\徽标和字段\修订\徽标均为空
我相信实体API负责检索和保存附加字段。有人能告诉我我的代码有什么问题吗?多谢各位 您必须将值写回您的实体:
field_attach_submit('silver_client', $client, $form, $form_state);
entity_save('silver_client', $client);
您应该验证字段值:
field_attach_validate('silver_client', $client, $form, $form_state);
此外,如果您不想自己声明您的实体和字段,您可以签出
EntityConstructionKit
:它允许导出具有功能的实体结构,就像视图
我想自己解决这个问题。在submit函数中,函数:entity\u form\u submit\u build\u entity('silver\u client',$client,$form,$form\u state);需要打电话。如果没有它,这些值来自form_Stateghommey。在我的原始代码中,我确实使用了字段\u attach\u submit,但将其放在实体\u save之后。我真的不明白这个函数的意图。现在我明白了,它实际上把form_state中的字段值放入实体对象中。以便以后可以保存这些值。