Ich habe die offizielle Formular-API-Dokumentation befolgt, aber dieser Code funktioniert bei Drupal 8 nicht für mich:
public function buildForm(array $form, FormStateInterface $form_state) {
$form['upload'] = array(
'#title' => t('Upload Images'),
'#type' => 'managed_file',
'#upload_location' => 'public://image_example_images/',
'#element_validate' => array('file_generic_settings_max_filesize'),
);
return $form;
}
private function file_generic_settings_max_filesize($element, &$form_state) {
form_error($element, 'This is an error.');
}
Ich habe versucht, form_error () durch $ form_state-> setErrorByName () zu ersetzen, aber das gleiche Problem, die Datei wird hochgeladen und die Validierung wird nicht aufgerufen.
Haben Sie bitte eine Lösung? Die Dokumentation von #element_validate ist veraltet?
Mein Ziel: Laden Sie viele Bilder hoch, verwenden Sie eine benutzerdefinierte Validierung und fügen Sie alle Miniaturbilder aller Bilder in <div class="preview"></div>
ein Feld mit einem Namen für die einzelnen Bilder ein.
Beispiel: (Zeigen Sie nach dem Hochladen Miniaturansichten und das Titelfeld an, um alle Bilder zu benennen.)
Andernfalls muss ich nach dem Hochladen für die Anzeige von Miniaturansichten und anderen Feldern (Titel und Beschreibung) für jedes Bild #value_callback, #process, #attached (Feld / Anzeige mit js nach dem Hochladen verwalten) oder eine andere Option verwenden.
Vielen Dank.