Я создал тип контента «Галерея» и добавил два поля: «фотография» и «документ». Затем я использовал следующий код для загрузки файла в поле «документ»:
$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.');
}
Я прикрепляю этот файл к узлу, используя следующий код:
$customNode->field_document[$customNode->language][0] = (array)$file;
Когда я вызываю node_submit()
функцию, я получаю следующую ошибку:
Нарушение ограничения целостности: 1048 Столбец 'field_document_display' не может быть пустым
Кто-нибудь знает, что я делаю не так?
Ваше решение почти правильно; однако в некоторых случаях требуется, чтобы вы также установили отображение и описание.
Чтобы ваш код работал, сделайте это:
источник
Я думаю, что ключ здесь эти строки
как указал Эрик ван Элдик. Я боролся с точно такой же проблемой, добавив только
не помогло, но
сделал мой день.
источник
Для добавления файла программно к узлу вы можете использовать
источник
Просто вставив здесь свое решение, мне нужно было создать новый узел и загрузить изображение программным способом.
источник
Прикрепите несколько файлов программно в Drupal 8:
источник