Saya perlu mengidentifikasi bundle
entitas dari type
dan id
.
Misalnya, jika type
is 'node' dan id
7, saya mungkin mendapatkan 'page' sebagai bundle
.
Terima kasih
Gunakan entity_load
untuk memuat entitas seperti yang disebutkan oleh @Nikhil.
Kemudian gunakan entitas_extract_ids , untuk mengekstrak bundel. Contoh:
$entity = entity_load('node', array('7'));
list(, , $bundle) = entity_extract_ids('node', $entity);
echo "Bundle name is : " . $bundle;
Fungsi entity_extract_ids
mengembalikan array yang diindeks secara numerik (bukan tabel hash) yang mengandung elemen:
di mana, 0
, 1
, dan 2
adalah indeks array. Namun, pendekatan yang digunakan oleh modul inti dan kontrib adalah dengan menggunakan list()
fungsi tersebut.
list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
Ini adalah
yang terbersihyang saya dapatkan dari kode modul kelompok organik.Misalnya saya bisa menyebutnya seperti:
Sunting: Seperti yang ditunjukkan oleh @Clive, metode di atas tergantung pada modul entitas.
Berikut adalah metode lain yang tidak bergantung pada modul tambahan apa pun. Dijelaskan di sini https://forrst.com/posts/Get_the_bundle_of_a_Drupal_7_entity-0xW
Salin menempelkan metode itu:
sumber
$group_type, $gid
? dan apa nilainya$bundle
?entity_load
, dengan cara bagaimana itu terbersih?entity_metadata_wrapper()
lebih bersih darientity_extract_ids()
metodenya. Ditambah lagi, Anda mengandalkan modul entitas yang sedang diinstal ...Coba entitas_load
Parameter
$ entity_type : Jenis entitas yang akan dimuat, misal simpul atau pengguna.
$ Id : Array ID entitas, atau FALSE untuk memuat semua entitas.
$ conditions : (usang) Array asosiatif dari kondisi pada tabel dasar, di mana kuncinya adalah bidang basis data dan nilai adalah nilai yang harus dimiliki bidang tersebut. Sebagai gantinya, lebih disukai menggunakan EntityFieldQuery untuk mengambil daftar ID entitas yang dapat dimuat oleh fungsi ini.
$ reset : Apakah akan mereset cache internal untuk jenis entitas yang diminta.
Nilai pengembalian
Array objek entitas yang diindeks oleh id mereka. Ketika tidak ada hasil yang ditemukan, array kosong dikembalikan.
sumber
Jika Anda menginginkan cara yang sangat ringan, berdasarkan kinerja, untuk mendapatkan jenis simpul dari id simpul - Anda dapat menggunakan kueri pemilihan tunggal pada tabel simpul.
Dengan begitu, Anda tidak perlu memanggil seluruh sistem kait entitas, dengan entity_load dll.
Ini adalah kueri pemilihan tunggal menggunakan id simpul yang diindeks.
sumber