Drupal 10 怎么使用 #element_validate 属性对表单字段进行验证?
发布于
之前为表单添加验证函数时,都是通过 $form['#validate']
进行添加。了解到可以使用 #element_validate
属性单独对字段值进行验证,感觉更加优雅,请问题应该怎么写代码?
1 个回答
将 #element_validate 添加到相应的表单项数组中,值为回调用自定义验证函数,并参考官方示例实现自定义验证函数就行了。
$form['name'] = [
'#title' => t('Name'),
'#type' => 'textfield',
# 添加 #element_validate 属性及回调函数.
# 回调函数名称没有格式要求,可以使用如下格式:'模块名_表单名_字段名_validate'
'#element_validate' => ['mymodule_xxx_form_name_validate'],
];
实现回调函数
function mymodule_xxx_form_name_validate($element, &$form_state, $form) {
if (empty($element['#value'])) {
$form_state->setError($element, t('This field is required.'));
}
}