Tôi đã theo dõi Tài liệu API mẫu chính thức, nhưng mã này không hoạt động với tôi trên 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.');
}
Tôi đã cố gắng đặt lại form_error () bằng $ form_state-> setErrorByName () nhưng cùng một vấn đề, tệp được tải lên và xác thực không được gọi.
Bạn có một giải pháp xin vui lòng? Tài liệu của #element_validate đã lỗi thời?
Mục tiêu của tôi: Tải lên rất nhiều hình ảnh, sử dụng xác thực tùy chỉnh và chèn tất cả hình thu nhỏ của hình ảnh bên trong <div class="preview"></div>
với một trường để đặt tên cho mỗi hình ảnh.
Ví dụ: (Sau khi tải lên, hiển thị hình thu nhỏ và trường tiêu đề cho tên của tất cả các hình ảnh)
Khác, sau khi tải lên, để hiển thị Hình thu nhỏ và trường khác (tiêu đề và mô tả) cho mỗi hình ảnh, tôi cần sử dụng #value_callback, # process, #attached (quản lý trường / hiển thị với js sau khi tải lên) hoặc một tùy chọn khác?
Cảm ơn.