Saya mencari ID entitas tipe A dan saya tahu ID entitas B yang mereferensikan A.
Saya menemukan beberapa sumber bagus tentang EntityFieldQuery. Saya kagum bahwa saya mendapatkan hasil dari .NET di google :) (apakah itu tanda kedewasaan Drupal? :). Tetapi tidak berhasil menemukan ini. Tolong bantu ...
Beberapa sumber:
Ini adalah apa yang tampak dengan beban entitas - Anda akan mengerti saya perlu permintaan itu :) Pembungkus ada untuk latihan terutama. Perhatikan bahwa ia memuat entitas target - cukup banyak permintaan.
$b = entity_load('B', array($id));
$bm = entity_metadata_wrapper('B', $sl[$id]);
$tsl = $slm->field_sl_tpref->value();
echo $tsl->id;
EntityFieldQuery
hanya dapat referensi satu set entitas, tidak dapat menciptakan hubungan dengan entitas lain sayangnya. Itu juga hanya dapat mengembalikan satu jenis entitas sekaligus sehingga bahkan jika Anda dapat membuat hubungan ini hasilnya tidak dapat diandalkan.Jawaban:
Anda dapat menggunakan
target_id
alih-alihvalue
untuk mengambil entitas berdasarkan ID entitas yang dirujuk:sumber
err, apakah Modul Relasi apa yang Anda cari? Kedengarannya seperti mendefinisikan hubungan antara entitas X dan Y adalah apa yang ingin Anda lakukan. ia memiliki RelationQuery (pembungkus di sekitar EFQ) sendiri dan RelationQueryEndpoints untuk dengan mudah mendapatkan informasi seperti ini.
sumber
Saya tahu ini adalah pertanyaan yang lebih lama, tetapi untuk orang-orang yang mendapatkan ini dari Google saya pikir saya akan melakukan pendekatan lain di sini.
Dari uraian di atas pengaturan memiliki 2 jenis entitas, A dan B. B referensi A dengan referensi entitas yang saya asumsikan. Jadi, jika Anda memiliki id B Anda harus memiliki bidang dengan ID A yang disimpan dalam database.
Catatan Kode:
$original_node->nid
Ini akan menjadi ID B$type
ini harus menjadi tipe AKode
Anda juga dapat mengatur referensi entitas dua arah dan melakukan permintaan yang sama di atas mundur. Anda dapat menggunakan modul seperti CER untuk memastikan bahwa referensi tersebut selalu diperbarui. Atau mengatur aturan agar referensi tetap terbaru, saya telah menggunakan keduanya.
sumber
fieldCondition('field_NAME_OF_FIELD', 'target_id', $original_node->nid, '=')
berfungsi? harus diubah menjadifieldCondition('field_NAME_OF_FIELD', 'target_id', array($original_node->nid), 'IN')
. Tidak dapat menemukan apa pun tentang cara menerapkan kondisi pada bidang referensi entitas multinilai. ada saran?solusi yang cukup dinamis (agak kotor juga tetapi saya membutuhkannya dengan cepat) sehingga Anda tidak perlu membuat kode nama untuk bidang rujukan dan secara otomatis ditangani dengan bidang rujukan baru yang akan Anda tambahkan di masa mendatang:
dalam modul khusus Anda:
di mana Anda perlu mendapatkan node induk diberikan simpul anak:
sumber