Как проверить, что поле «Файл» внутри абзаца заполнено в друпальной форме? - PullRequest
0 голосов
/ 10 апреля 2019

Я создал форму Drupal с Абзацем .

Этот абзац содержит поле Файл .

Я хочу проверить , что пользователь вложил файл.

function my_module_form_node_form_alter(&$form, FormStateInterface &$form_state) {
    $form['#validate'][] = 'form_validation';
}
function form_validation($form, FormStateInterface &$form_state) {

    if(!$form_state->getValue('field_qr_dc_spatial_temp_comp')[0]['subform']['field_dc_1_document']['0']['value']){
        $form_state->setErrorByName("field_qr_dc_spatial_temp_comp][0][subform][field_dc_1_document][0",t('Error'));
    }
}

field_qr_dc_spatial_temp_comp - это абзац

field_dc_1_document - это поле файла

С этим кодом я всегда получаю, что он не заполнен.

Я попытался проверить "form_state", но не могу найти документ, который пытаюсь загрузить.

1 Ответ

0 голосов
/ 16 апреля 2019

Я обнаружил, что мне нужно проверить поле "fids", например так:

$form_state->getValue('field_qr_dc_spatial_temp_comp')[0]['subform']['field_dc_1_document']['0']['fids']

Если файл прикреплен, это значение не будет пустым.

У меня былопробовал раньше, но отладка с помощью kint, и кажется, что kint с асинхронными вызовами (например, загрузка файла) конфликтует, и это поле всегда было пустым.

...