我创建了一个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”,但是找不到我尝试上传的文档。
答案 0 :(得分:0)
我发现我必须检查“ fids”字段,如下所示:
$form_state->getValue('field_qr_dc_spatial_temp_comp')[0]['subform']['field_dc_1_document']['0']['fids']
如果附加了文件,则该值将不会为空。
我以前曾尝试过,但是使用kint进行调试,似乎带有异步调用的kint(例如上载文件)存在冲突,并且该字段始终为空。