Contoh: Saya ingin mendapatkan semua nama tag yang ada di dalam field_tags dari simpul 5.
Saya bisa mendapatkan target_id dengan $ node-> field_tags-> getValue () ;
Tapi masalahnya adalah, saya tidak tahu entitas apa nilai target_id milik. Bisa berupa id node, id istilah, id pengguna. Tanpa info itu, saya tidak dapat menggunakan target_id untuk mendapatkan nama tag.
Bagaimana saya bisa mendapatkan semua nama bidang referensi entitas?
$node->toArray();
tentu terlihat jauh lebih pendek & bersih daripada menggunakan\Drupal::service('entity_field.manager')->getFieldDefinitions('node', 'article');
print_r($entity->toArray())
Ini memecahkan masalah ini. Saya bisa mendapatkan semua detail bidang. Terima kasih banyak.Bidang referensi entitas, menurut definisi, hanya dapat menargetkan satu tipe entitas sehingga Anda dapat mengetahui apa tipe target Anda dengan memanggil
getSetting()
definisi bidang.Atau lebih baik lagi, gunakan
EntityReferenceFieldItemList::referencedEntities()
untuk menarik entitas yang dirujuk simpul dan data terkait yang Anda butuhkan.sumber
print_r($node->field_tag->referencedEntities());
tampaknya menjadi sumber daya babi, saya telah meningkatkan contoh AWS saya , hanya untuk dapat melakukannya, karena saya terus mendapatkan WSOD.Or better yet
metode Anda . Metode pertama baik, tetapi akan membutuhkan pernyataan jika memeriksa jenis target dan kemudian mendapatkan nilainya. Jawaban Berdir lebih efisien karena tidak perlu diperiksa.target_type
nilai darientity_reference
bidang dan mencari tinggi dan rendah untuk itu ... sampai Anda menjawab pertanyaan saya di sini.