私は公式のフォームAPIドキュメントに従いましたが、このコードはDrupal 8では機能しません。
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.');
}
$ form_state-> setErrorByName()でform_error()を削除しようとしていますが、同じ問題があり、ファイルがアップロードされ、検証が呼び出されません。
解決策はありますか?#element_validateのドキュメントは古くなっていますか?
私の目的:多数の画像をアップロードし、カスタム検証を使用して、すべての画像のサムネイルを内に挿入<div class="preview"></div>
し、各画像に名前を付けるフィールドを指定します。
例:( アップロード後、すべての各画像の名前のサムネイルとタイトルフィールドを表示します)
それ以外の場合、アップロード後、各画像のサムネイルとその他のフィールド(タイトルと説明)を表示するには、#value_callback、#process、#attached(アップロード後にjsでフィールド/ディスプレイを管理)または他のオプションを使用する必要がありますか?
ありがとう。