campo entity reference filtrato
In un contenuto ho un campo entity reference con widget select.
Questo campo deve visualizzare alcuni nodi e non tutti.
In forma alter attraverso il getStorage, lo filtro in base alle necessità e poi collego l'array al campo.
A funzionare sembra funzioanre.
Di seguito il codice
$nodi = \Drupal::entityTypeManager()->getStorage('node')->loadByProperties( ['type' => 'anagrafica_capitoli', 'field_en_us' => 'E'] ); foreach($nodi as $nodo) { $NodiCap[$nodo->id()] = $nodo->label(); } $form['field_capitolo']['widget']['#options'] = $NodiCap;
Ho vari dubbi, è questo il modo giusto di fare quel che mi serve?
Il successivo è questo codice,
$NodiCap[$nodo->id()] = $nodo->label();
mi valorizza il dato con la label e va bene. Però vorrei avere la certezza che nel dataBase memorizzi il dato esatto. Ho provato anche con una vista e sembra sia esatto.
L'ultimo è in
loadByProperties( ['type' => 'anagrafica_capitoli', 'field_en_us' => 'E'] );
è possibile aggiungere un indice in ordine crescente sul campo title?
Gaetano
Risposte
Mi sembra ok ma per il
Mi sembra ok ma per il sorting devi utilizzare il metodo sort() di entityQuery
\Drupal::entityTypeManager()->getStorage('node')->getQuery()->condition( .. )->sort('title' , 'ASC');
Quindi devo utilizzare un
Quindi devo utilizzare un altro comando per poter filtrae ed indicizzare il dato.
Grazie
proverò
OK ci ho messo un po' di
OK ci ho messo un po' di tempo per capire come alimentare l'array
questo è il codice usato
A funzionare funziona ma mi serve capire se è il modo giusto di operare.
Il codice dell'esempio che
Il codice dell'esempio che hai postato è corretto.
Anche se va benissimo usarlo, segnalo che è possibile utilizzare anche una vista per la selezione del valori delle opzioni, in modo da non dover per forza scrivere codice per eseguire query specifiche.
Esistono inoltre tanti moduli che possono migliorare la UX/UI di selezione degli entityreference come ad esempio:
https://www.drupal.org/project/entity_browser
buon lavoro!
Grazie per la
Grazie per la rassicurazione.
Si nelle varie letture ho visto che per il campo Entity Reference si può utilizzare una vista per la scelta ma ancora non ho trovato nulla da leggere per capire come funziona
Terrò presente le indicazioni che mi hai indicato per le prossime occasioni o migliorare quello che ho realizzato