Satu dapat mengambil item bidang dari suatu entitas dengan
// Find all terms on $node in field 'field_tags'.
$terms = field_get_items('node', $node, 'field_tags');
Tetapi apakah ada cara yang mudah untuk melakukan kebalikan, Core, atau sebaliknya?
// Attach new term $term to $node in field 'field_tags'.
$term = taxonomy_term_load($tid);
$node = field_set_items('node', $node, 'field_tags', 'taxonomy_term', $term);
node_save($node);
Saya ingin menghindari kerumitan dalam menetapkan istilah $ secara manual, lihat devel seperti apa struktur array dan kemudian bangun array dengan tangan, karena terkadang non-sepele.
Satu-satunya masalah dalam antrian inti yang dapat saya temukan yang tampak agak mirip adalah tentang bahasa bidang api DX .
Agar fungsi seperti itu ada,
field_set_items()
harus dapat mengidentifikasistdClass
objek sebagai istilah taksonomi, dan juga memetakannya ke fungsi yang dapat memecahkan kode objek dan membuat array bidang dari itu.Karena tidak ada fungsi inti untuk melakukan itu, saya tidak berpikir ini akan mudah.
sumber
entity_type
tidak benar-benar masalah IMHO ... masalahnya adalah persis apa yang Anda tambahkan ke pertanyaan Anda: "itu kadang-kadang non-sepele". Karena data bersifat non-sepele, agarfield_set_items
dapat berfungsi sesuai keinginan Anda, setiap tipe bidang dalam sistem perlu menerapkan semacam antarmuka yang menjelaskan cara merekayasa-ulang array data dari objek / variabel arbitrer.Meskipun ini tidak membantu membangun struktur array yang rumit, saya melihat bahwa apa yang saya cari sampai batas tertentu telah diperkenalkan di Drupal 8. Mungkin akan diperluas lebih jauh di masa depan. :)
API sederhana baru tersedia untuk mengakses bidang, properti, dan informasi bahasa .
Contoh penggunaan dari halaman tertaut:
sumber