Pada dasarnya, saya ingin memasukkan nama depan & nama keluarga menjadi $ node-> field_par_contact_name
Tapi itu memberi saya peringatan. (Lihat di bawah)
function partnership_node_presave ($ node) { if ($ node-> type == 'partnership') { $ first_name = $ node-> field_par_contact_first_name ['und'] [0] ['name']; $ nama keluarga = $ node-> field_par_contact_surname ['und'] [0] ['name']; // https://drupal.org/project/field_hidden // Variabel tersembunyi $ node-> field_par_contact_name ['und'] [0] ['value'] = $ first_name. '' $ nama keluarga; // Peringatan setelah simpan: array_flip (): Hanya dapat membalik nilai STRING dan INTEGER! di DrupalDefaultEntityController-> load () (baris 173 dari ... / drupal-7.23 / include / entity.inc } }
Diperbarui , silakan lihat gambar:
Jawaban:
Sebagai permulaan, Anda mungkin menggunakan kunci array yang salah untuk nilai bidang yang Anda simpan; 'nama' harus menjadi 'nilai' di sana.
Kedua, Anda benar-benar menggunakan bidang Referensi Istilah Taksonomi untuk bidang "nama depan" dan "nama keluarga" Anda. Satu poin penting tentang bidang Referensi adalah bahwa Anda tidak selalu dapat berasumsi bahwa entitas yang direferensikan telah dimuat penuh dan tersedia di objek Anda. Secara default, ketika objek node dimuat, bidang itu hanya terlihat seperti ini:
Hanya kunci 'tid' yang pasti ada di sana. 'nama' adalah properti dari istilah yang dirujuk, dan biasanya tidak tersedia secara otomatis. (Kode berikutnya sebenarnya dapat memuat istilah yang direferensikan dan membuatnya tersedia dalam objek $ node, tapi itu hanya kebetulan jika demikian.)
Anda akan memiliki waktu yang jauh lebih mudah jika bidang "Nama Depan" dan "Nama Keluarga" Anda adalah bidang teks dan bukan referensi. Kemudian, nilai-nilai itu akan menjadi milik langsung dari node itu sendiri, bukan ke istilah taksonomi terpisah yang dirujuk.
Jika Anda terjebak menggunakan referensi istilah taksonomi, maka Anda harus membuat titik dalam kode Anda untuk memuat istilah yang direferensikan, kemudian dapatkan nilai yang Anda butuhkan dari properti $ term-> name itu sendiri.
sumber