Come posso creare a livello di programmazione un input selezionato i cui valori provengono da una chiave estranea usando l'API FORM?

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

Domanda

Ho la tabella A che ha una chiave esterna che si riferisce alla tabella B. Voglio che la mia forma associata alla tabella A abbia un campo selezionato i cui valori arriveranno dalla tabella B. Voglio che il campo selezionato abbia opzioni con coppie di valore chiave provenienti Tabella B.

Sia la tabella A che la tabella B contengono entità di diversi tipi.

Attualmente sto cercando soluzioni programmatiche che utilizzino il riferimento entità, ma senza dover passare un nuovo campo da Administration > Structure > <entity type>.

È stato utile?

Soluzione

Sono andato con questa soluzione che usa entity_load quindi aggiungendo le entità caricate come opzioni al campo Seleziona per ora:

$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
);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top