博主信息
博文 29
粉丝 0
评论 0
访问量 33214
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
thinkPHP5.1中的验证和独立验证
LIWEN的博客
原创
1172人浏览过

文档结构如下图:

2018-01-24_111004.png

控制中包含两个方法,test1()在调用User类中的验证规则进行验证,test3()将验证规则写在控制器中直接验证,称为独立验证。

控制器代码如下:

<?php
namespace app\index\controller;
use app\validate\User;
use think\Controller;
//use app\facade\User;   //采用静态代理方式调用时使用
//use think\facade\Validate;  //采用静态代理方式调用时使用

class Demo9 extends Controller
{
    public function test1()
    {
        //准备验证数据
        $data = [
            'name' => 'Peter',
            'email' => 'p@php.cn',
            'password' => '123abc',
            'mobile' => '18911112222'
        ];

        //验证器
        //第一种方法:
        $validate = new User();
        if (!$validate->check($data)){
            return $validate->getError();
        }
        return '验证通过';

        //第二种方法:静态代理
//        if (!User::check($data)){
//            return User::getError();
//        }
//        return '验证通过';
    }

    public function test3()
    {
        //创建验证规则
        $rule = [
            'name|<span style="color: red">姓名</span>' =>[
                'require',
                'min' => 5,
                'max' =>10,
            ],
            'email|<span style="color: red">邮箱</span>' => [
                'require',
                'email' => 'email',
            ],
            'password|<span style="color: red">密码</span>' => [
                'require',
                'min' => 3,
                'max' => 10,
                'alphaNum'
            ],
            'mobile|<span style="color: red">手机</span>' => [
                'require',
                'mobile'
            ]

        ];
        //添加字段的验证规则:初始化rule属性
        Validate::rule($rule);
        //准备要验证的数据
        $data = [
            'name' => 'Peter',
            'email' => 'p@php.cn',
            'password' => '123abc',
            'mobile' => '18911112222'
        ];
        //如果验证不通过,直接输出错误
        if (!Validate::check($data)){
            return Validate::getError();
        }
        return '<h3 style="color: green" >验证通过!~</h3>';

    }
}

User类文件名为User.php,代码内容:

<?php

namespace app\validate;
use think\Validate;

class User extends Validate
{
    //当前验证的规则
    protected $rule = [
        'name|姓名' =>[
            'require',
            'min' => 5,
            'max' =>10,
        ],
        'email|邮箱' => [
            'require',
            'email' => 'email',
        ],
        'password|密码' => [
            'require',
            'min' => 3,
            'max' => 10,
            'alphaNum'
        ],
        'mobile|手机' => [
            'require',
            'mobile'
        ]

    ];

}

User类的静态代理代码如下:

<?php

namespace app\facade;
use think\Facade;

class User extends Facade
{
    protected static function getFacadeClass()
    {
        return 'app\validate\User';
    }
}


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学