У меня есть пользовательская форма в Drupal 8. Форма имеет поле managed_file с несколькими значениями true. Я сталкиваюсь с проблемой ограничения количества загружаемых файлов в это поле.
Я должен заполнить это поле managed_file, чтобы загружать только 3 изображения.
Может ли кто-нибудь помочь мне с этим? Я попробовал приведенный ниже код.
public function buildForm(array $form, FormStateInterface $form_state) {
$form['upload_doc'] = array(
'#type' => 'managed_file',
'#title' => 'File Upload',
'#upload_location' => 'public://upload_document/',
'#required' => TRUE,
'#multiple' => TRUE,
'#upload_validators' => array(
'file_validate_extensions' => array('jpg jpeg png'),
'file_validate_size' => 2000,
),
);
// Add a submit button that handles the submission of the form.
$form['actions']['submit'] = [
'#type' => 'submit',
'#value' => $this->t('Submit'),
];
return $form;
}
public function validateForm(array &$form, FormStateInterface $form_state) {
$fileObj = $form_state->getValue('upload_doc');
if (count($fileObj) > 3) {
drupal_set_message('File limit exceed'.count($fileObj), 'error');
return false;
} else {
return true;
}
}
Проблема в том, что я не могу подтвердить ограничение на загрузку файлов. Это позволяет загружать больше, чем лимит. Пожалуйста, помогите мне Спасибо