用户登录

提交表单的时候我们有方法可以检查表单里面的元素的数据,看看是不是符合我们的要求,如果不符合的话,我们可以提示用户哪里需要修改一下。表单提交以后,Drupal 会执行表单类里面的 validateForm 这个方法,在它里面可以去检查表单里的数据。

在这个方法里面,我们可以添加点代码去检查一下这个表单里的 name 元素 .. 先看一下这个元素里面是不是有数据,如果有就去检查它里面的数据 .. FormStateInterface 里面有一个 isValueEmpty 方法,可以使用它来检查元素里的值是不是空白的 ...

用一个 if .. 使用 $form_state 的 isValueEmpty 方法,检查一下 name 这个元素 .. 如果它里面的值是空白的,这个方法就会返回 true .. 前面加上一个 ! ,表示如果不是空白的,就执行 if 里面的代码 ..

在它里面,我们可以去判断一下 name 这个元素的值的长度,我要求它的长度必须大于 2 .. 同样使用一个 if 判断一下 .. 得到表单元素里的值可以这样 .. 使用 $form_state 里的 getValue 这个方法,要得到的是 name 这个表单元素的值 .. 然后我们用一个 Unicode::strlen 这个方法 . 它可以返回字符串的长度 .. 判断一下这个长度是不是

这个错误信息可以使用 $form_state 的 setErrorByName 方法 .. 出错的元素是 name .. 把它作为这个方法的第一个参数,第二个参数是显示的错误信息 .. 用一个 t 函数 .. 姓名 必须使用两个或以上的字符 ..

这里我们用到了 Drupal 的 Unicode 这个类 .. 在上面我们再使用一下它 .. use .. 它的位置是 Drupal\Component\Utility\Unicode;

保存 ... 回到前台去试一下 .. 在这个表单页面 .. 直接点击 保存 .. 没有反应 .. 再 输入一个字的姓名 .. 然后保存 .. 提示表单里的姓名这个字段出现了一个错误 ...

再输入两个字儿的姓名 .. 保存 ... 这次表单里的元素符合我们的要求,所以没有提示错误 ...

表单验证《 Drupal 8 开发:表单 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点