如何使用Form API以编程方式创建其值来自外键的选择输入?

时间:2013-11-07 00:08:38

标签: drupal drupal-7 drupal-forms form-api drupal-entities

我有表A,其外键引用表B.我希望与表A关联的表单有一个选择字段,其值将来自表B.我希望select字段具有键值选项来自表B的对。

表A和表B都包含不同类型的实体。

我目前正在寻找使用实体参考的程序化解决方案,但无需在Administration&gt;中添加新字段。 Structure&gt; <entity type>

1 个答案:

答案 0 :(得分:1)

我选择了使用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
);