[原] 框架中增加了表单验证及表单回填功能

本次增强包括以下内容:

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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值