SuperAPI AI 工具集

drupal-form-validation

通用与其它

查看项目

更新于 10-15 21:37

技能介绍

用途:该资料面向 Drupal 表单验证,围绕 validateForm() 方法、元素级校验器与表单改动钩子,说明如何校验用户提交值并向指定字段或渲染元素设置错误。

主要能力:validateForm(array &$form, FormStateInterface $form_state) 中可用 $form_state->getValue() 读取单值、以数组读取嵌套值、用 getValues() 取全部值。校验失败时可调用 setErrorByName() 指向字段名,嵌套元素使用类似 'field_date][0][value' 的写法,也可用 setError() 直接指向 $form['field_date'] 渲染元素。资料还给出用 getError() 判断字段是否已有错误的示例。

元素级校验:#element_validate 可把校验回调直接挂在表单元素上,回调接收元素、form_state 与表单数组,通过 $element['#value'] 取值,并用 setError() 报错。

条件校验与钩子:可在 validateForm() 中根据其他字段值决定是否校验,例如类型为 external 时要求并提供合法 URL,配合 UrlHelper::isValid()。通过 hook_form_alter(示例为 #[Hook('form_node_article_form_alter')])可向 #validate 数组用 array_unshift() 前置或 [] 追加校验处理器。

限制:资料仅提供代码片段与用法示例,未说明版本要求、完整安装步骤或配置方法;示例中的 $emailExists 等变量未给出定义,需按实际项目补齐。