表单验证

表单验证需要在字段的属性上面定义verify选项,可以是自定义匿名回调函数,也可以实例化easyadmin\app\libs\Verify类,然后配置规则

表单验证区分必填和非必填, 所以必填单独做了一个验证选项

#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\libs\PageForm;
use easyadmin\app\columns\form\FormText;


class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            ->addField('name', '分类名称', FormText::class,[

                'required' => true,  //是否必填


                //定义验证规则, 用户输入的值长度大于0 个字符才会进入验证
                // 1. 使用 Verify 类,然后配置规则
                'verify' => (new Verify())
                    ->addRule('chinese', '名称请输入中文')
                    ->addRule('maxlength', '名称不能超过5个字符', 5)
                    ->addRule('minlength', '名称不能少于过2个字符', 2)
                    ->addRule('reg', '请输入 重庆', '/^重庆$/') // 使用正则自定义验证规则

                // 2. 声明匿名函数验证
                // 验证正确 返回 true  错误返回错误提示  注: 正必须是 返回 true
                'verify' => function ($val) {
                    if ($val != '583161908') {
                        return 'QQ 群是 583161908, 请输入: 583161908';
                    }
                    return true;
                }
            ]);

    }
}

addRule 方法 参数说明:
字段 说明 类型 必填 默认值
rule 验证规则
chinese: 只能输入中文
username: 用户账号, 大小写带下划线
mobile: 手机号码
phone_num: 座机号码
idcard: 18位身份证
number: 只能输入数字
float: 只能输入小数
email: 邮箱
url: 网址
ip: ip
date: 日期或者日期时间 2021-03-09 或者 2021-03-09 18:00:59
max: 最大值; 需要 opt 参数指定最大值
min: 最小值; 需要 opt 参数指定最小值
maxlength: 最大长度; 需要 opt 参数指定最大长度
minlength: 最小长度; 需要 opt 参数指定最小长度
reg: 正则验证: 需要 opt 参数指定 正则表达式
string
msg 错误提示消息 string
opt 选项,配合rule使用; 如果 rule 规则需要另外一个值来比对,则在这里填写
示例:
->addRule('maxlength', '名称不能超过5个字符', 5)
->addRule('minlength', '名称不能少于过2个字符', 2)
->addRule('reg', '请输入 重庆', '/^重庆$/')