本次增强包括以下内容:
1.增加了表单项的定义功能,可以对表单项进行常规检查
2.增加了表单的定义 功能,可以对整个表单进行常规检查
3.表单项检查和表单检查中,都允许开发人员自行编写业务代码进行进一步的检查
4.使用标准的错误处理方式,将表单中的全部错误返回给前端
5.用户在表单填写过程中出现错误,再次显示表单时,数据将被回填(可选)
以下是示例代码,以登录为例
<?php use function icePHP\display; use function icePHP\dump; use function icePHP\form; use function icePHP\formUnit; /** * 示例,表单项/表单验证 及 表单回填 * User: ice * Date: 2019/6/12 * Time: 8:36 */ class CExam extends CBase { /** * 显示登录页面(即login.tpl) */ public function login() { display(); } /** * 私有方法,生成一个表单项 * @return icePHP\FormUnit */ private function unitLoginCheck() { //定义表单项的英文名称和中文名称以及验证规则 $unit = formUnit('checkCode', '验证码') ->minLength(4, '验证码必须是4位') ->maxLength(4, '验证码必须是4位'); //这一段用于开发人员自行编写检查代码 if (!$unit->check()) { //如果之前的验证通过 //这里是示例的检查逻辑 if ($unit->value() != '1234') { $unit->error('开发人员对验证码进行检查时发现错误'); } } return $unit; } /** * 私有方法,生成一个表单对象 * @return icePHP\Form */ private function formLogin() { //定义一个表单对象所包含的表单项 $form= form('登录')->add( formUnit('name', '姓名')->must()->minLength(2, '姓名必填'), formUnit('password', '密码')->must()->minLength(6, '密码太短'), formUnit('age', '年龄')->min(18, 'Too Young')->max(70, 'Too Old'), $this->unitLoginCheck() ); //这一段用于开发人员自行编写检查代码 if(!$form->check()){ //如果之前的验证通过 //取表单数据 $data=$form->value(); //对表单数据进行进一步检查 if($data['checkCode']!='1234'){ $form->error('开发人员对表单进行检查时发现错误'); } } return $form; } /** * 登录后的提交处理 */ public function loginSubmit() { //生成表单对象 $form = $this->formLogin(); //整个表单进行检查 $error = $form->check(); //如果有错误,报错 if ($error) { $this->error($error); } //取出表单的值 $value = $form->value(); //进行下一步业务处理 dump($value); } }