我有一个表 A 有一个引用表 B 的外键。我希望与表 A 关联的表单有一个选择字段,其值将来自表 B。我希望选择字段具有键值对的选项来自表 B。
表 A 和表 B 都包含不同类型的实体。
我目前正在寻找使用实体引用的编程解决方案,但不必从Administration
> Structure
>添加新字段<entity type>
。
我有一个表 A 有一个引用表 B 的外键。我希望与表 A 关联的表单有一个选择字段,其值将来自表 B。我希望选择字段具有键值对的选项来自表 B。
表 A 和表 B 都包含不同类型的实体。
我目前正在寻找使用实体引用的编程解决方案,但不必从Administration
> Structure
>添加新字段<entity type>
。
我使用了这个解决方案,该解决方案现在使用entity_load
然后将加载的实体作为选项添加到选择字段:
$foreign_entity_items = entity_load('foreign_entity');
$foreign_entity_options = array();
foreach ($foreign_entity_items as $foreign_entity_item) {
$foreign_entity_options[$foreign_entity_item->some_field] = $foreign_entity_item->some_other_field;
}
$form['some_form_element'] = array(
'#title' => t('Some title'),
'#type' => 'select',
'#required' => TRUE,
'#options' => $foreign_entity_options
);