Como posso criar programaticamente uma entrada selecionada cujos valores vêm de uma chave estrangeira usando a API do formulário?

StackOverflow https://stackoverflow.com/questions/19825511

Pergunta

Eu tenho a Tabela A que tem uma chave estrangeira referindo-se à Tabela B. Quero que minha forma associada à Tabela A tenha um campo selecionado cujos valores virão da Tabela B. Quero que o campo selecionado tenha opções com pares de valores-chave provenientes de Tabela B.

A Tabela A e a Tabela B contêm entidades de diferentes tipos.

Atualmente, estou procurando soluções programáticas que usam referência de entidade, mas sem ter que passar por adicionar um novo campo de Administration > Structure > <entity type>.

Foi útil?

Solução

Eu fui com esta solução que usa entity_load Em seguida, adicionando as entidades carregadas como opções ao campo Selecionar por enquanto:

$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
);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top