Ich habe den Inhaltstyp "Galerie" erstellt und zwei Felder hinzugefügt: "Foto" und "Dokument". Ich habe dann den folgenden Code zum Hochladen einer Datei im Feld "Dokument" verwendet:
$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.');
}
Ich hänge diese Datei mit dem folgenden Code an den Knoten an:
$customNode->field_document[$customNode->language][0] = (array)$file;
Wenn ich node_submit()
function aufrufe, erhalte ich folgende Fehlermeldung:
Verletzung der Integritätsbedingung: 1048 Die Spalte 'field_document_display' darf nicht null sein
Weiß jemand, was ich falsch mache?
Ihre Lösung ist fast richtig; In einigen Fällen müssen Sie jedoch auch Anzeige und Beschreibung festlegen.
Damit Ihr Code funktioniert, gehen Sie folgendermaßen vor:
quelle
Ich denke, der Schlüssel hier sind diese Zeilen
wie Eric van Eldik betonte. Ich kämpfte mit genau dem gleichen Problem und fügte gerade hinzu
hat nicht geholfen, aber
meinen Tag gerettet.
quelle
Zum programmgesteuerten Hinzufügen von Dateien zu Knoten können Sie verwenden
quelle
Um meine Lösung auch hier einzufügen, musste ich einen neuen Knoten erstellen und ein Bild programmgesteuert hochladen.
quelle
Hängen Sie mehrere Dateien programmgesteuert in Drupal 8 an:
quelle