it-swarm.com.de

Wie erstelle ich ein Feld "Datei hochladen"?

Ich habe einen Inhaltsentitätstyp und möchte ein Feld "Datei hochladen" haben. Ich habe das Feld in meiner Entitätsklasse deklariert

$fields['file'] = BaseFieldDefinition::create('file')
    ->setLabel(t('Upload a file'))
    ->setDescription(t('Choose file from your computer'));

Und in EntityForm versuche ich, einige Einstellungen vorzunehmen, da ich dies später mit den '#states' zuverlässig machen muss.

$form['file'] = [
    '#title' => $this->t('File'),
    '#description' => $this->t('Upload a file from your computer'), 
    '#type' => 'file',
    '#default_value' => $entity->file->value,
];

Aber im Moment wird das Feld angezeigt, aber ich habe Probleme beim Speichern des Formulars. Die Datei wird angehängt, aber nicht hochgeladen und der Fehler lautet:

Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion getValue () für ein Nichtobjekt in C:\A plus\drupalsite\core\modules\file\src\Plugin\Validation\Constraint\FileValidationConstraintValidator.php in Zeile 18

3
badm
 $form['File'] = array(
        '#type' => 'managed_file',
        '#title' => t('Choose  File'),
        '#upload_location' => 'public://MyFilesFolder/',
        '#default_value' => $entity->get('File')->value,
        '#description' => t('upload file'),
        '#states' => array(
          'visible' => array(
            ':input[name="File_type"]' => array('value' => t('Upload Your File')),
          ),
        ),
      );
3
make-me-alive