Am incercat acest raspuns:
https://drupal.stackexchange.com/a/298084/1082
Dar se pare că nu pot folosi
'field_scientists' => $entity_reference_uuid
unde, in cazul meu, oameni de știință de câmp
este un câmp de tip Entity Reference UUID - care este un tip de câmp furnizat de https://www.drupal.org/project/entity_reference_uuid modul
Ce se întâmplă cu mine este că nu primesc nimic înapoi, matricea mea de rezultate din acel exemplu este goală.
Vreau să fac asta în mod programatic în modul meu personalizat, mai degrabă decât să folosesc o vizualizare Drupal.
Dacă există o altă cale, de ex. care folosește ->interogare
metodă de interogare a bazei de date, aș fi bucuros să folosesc această abordare programatică.
Mulțumesc.
Actualizați
Un exemplu de a uuid
de a nodul
in cazul meu este BMSSYS0000051988
.
Acest lucru a fost setat într-un import de migrare dintr-un câmp dintr-un CSV.
Incercarile mele sunt:
1. pe baza exemplului din cealaltă întrebare: https://drupal.stackexchange.com/a/298084/1082
$noduri = \Drupal::entityTypeManager()->getStorage('nod')->loadByProperties([
'type' => 'bol',
'field_parent_uuid' => $taxonkey,
]);
2. interogare db
$interogare = \Drupal::entityQuery('nod')
->condition('status', NODE_PUBLISHED)
->condition('tip', 'bol');
$și = $interogare->andConditionGroup();
$and->condition('field_parent_uuid', $taxonkey);
$interogare->condiție($și);
$rezultat = $interogare->execute();
Unde $taxonkey
este BMSSYS0000051988
ambele 1 și 2 încercări de mai sus returnează o matrice goală.
Actualizare 2
aici este configurația mea de migrare care arată că uuid este scris dintr-un câmp din csv. Este legal acest lucru? Ar trebui codul unui dezvoltator să modifice valoarea uuid sau ar trebui uuid să fie gestionat numai de nucleul Drupal?
dependențe: { }
id: bol_csv_import
clasa: nula
field_plugin_method: null
cck_plugin_method: nul
migration_tags: null
migration_group: defaultl: publicbins
etichetă: „Importați date despre speciile bol”
sursă:
plugin: csv
cale: ./data/taxonomy_species_with_unpacked_bold.csv
delimitator: ','
incintă: '"'
header_offset: 0
ID-uri:
- uuid
câmpuri:
-
nume: uuidl: publicbins
etichetă: „NBN id”
-
nume: parent_uuid
etichetă: „ID NBN al părintelui”
-
nume: nume
etichetă: Nume
-
nume: rang
etichetă: „Rang taxonomic”
-
nume: taxon_key
etichetă: „Cheie taxonului”
-
nume: autoritate
etichetă: autoritate
-
nume: specimenrecords
etichetă: specimenrecords
-
nume: înregistrări publice
etichetă: publicrecords
-
nume: publicbins
etichetă: pubele publice
-
nume: taxid
etichetă: „NBN Taxon ID”
proces:
numele titlului
uid:
plugin: default_value
valoare_default: 1
uuid: uuid
field_parent_uuid: parent_uuid
field_taxon_key: cheie_taxon
field_authority: autoritate
field_rank: rang
field_num_bold_barcode_specimens: specimenrecords
field_num_bold_public_records: publicrecords
field_num_bold_public_bins: publicbins
field_bold_taxon_id: taxid
tip:
plugin: default_value
default_value: bol
destinaţie:
plugin: 'entity:node'
dependențe_migrație: nul
Actualizare 3
Voi scrie o interogare db pentru a rezolva această problemă. Rularea unei linii de comandă sql indică că această abordare ar putea funcționa:
MariaDB [db]> select * din nodul unde nid = 246;
+-----+------+------+-----------------+---------- +
| nid | vid | tip | uuid | langcode |
+-----+------+------+-----------------+---------- +
| 246 | 248 | bol | NBNORG0000041189 | ro |
+-----+------+------+-----------------+---------- +
1 rând în set (0,001 sec)