Saya telah membuat tipe konten "Galeri", dan menambahkan dua bidang: "foto," dan "dokumen." Saya kemudian menggunakan kode berikut untuk mengunggah file di bidang "dokumen":
$file = file_save_upload('document', array(
'file_validate_extensions' => array('txt doc'), // Validate extensions.
));
// If the file passed validation:
if ($file) {
// Move the file, into the Drupal file system
if ($file = file_move($file, 'public://')) {
$file->status = FILE_STATUS_PERMANENT;
// $file->file_display = 1;
$file = file_save($file);
} else {
$output = t('Failed to write the uploaded file the site\'s file folder.');
}
} else {
$output = t('No file was uploaded.');
}
Saya melampirkan file ini ke node menggunakan kode berikut:
$customNode->field_document[$customNode->language][0] = (array)$file;
Ketika saya memanggil node_submit()
fungsi, saya mendapatkan kesalahan berikut:
Pelanggaran batasan integritas: 1048 Kolom 'field_document_display' tidak boleh nol
Adakah yang tahu apa yang saya lakukan salah?
Solusi Anda hampir benar; namun, dalam beberapa kasus mengharuskan Anda juga mengatur tampilan dan deskripsi.
Untuk membuat kode Anda berfungsi, lakukan ini:
sumber
Saya pikir kuncinya di sini adalah garis-garis itu
seperti yang ditunjukkan oleh Eric van Eldik. Saya berjuang dengan masalah yang sama persis, menambahkan adil
tidak membantu, tapi
membuatku bahagia.
sumber
Untuk menambahkan file secara terprogram ke node yang dapat Anda gunakan
sumber
Hanya akan menempelkan solusi saya di sini juga, saya perlu membuat simpul baru, dan mengunggah gambar secara terprogram.
sumber
Lampirkan beberapa file secara terprogram di Drupal 8:
sumber