thinkphp5.1验证

本文介绍了如何在ThinkPHP框架中使用验证器进行数据验证,包括定义验证规则、实例化验证器并进行验证操作等内容。

验证

验证器

每个验证需要一个继承自think\Validate的验证类,类里面的$rule代表了验证的规则

<?php
namespace app\validate;

use think\Validate;

class User extends Validate
{
//当前验证的规则
    protected $rule=[
        'name|姓名'=>[  //姓名是name的别名,用于输出错误信息
            'require',  //必填
            'max'=>20,  //最大长度
            'min'=>5,   //最小长度
        ],
        'email'=>[
            'require',
            'email'=>'email',//必须是email格式
        ],
        'password'=>[
            'require',
            'max'=>20,
            'min'=>8,
            'alphaNum'//必须是字母或数字
        ]
    ];
}

进行测试

<?php

namespace app\index\controller;
use app\facade\Validatefacade;
use app\validate\User;
use think\Controller;

class Validatetest extends Controller
{
    //验证器,是个类Validate,
    public function test1()
    {
        //要验证的数据
        $data = [
           'name' => 'xiaxuu',
            'email' => '2112343@qq.com',
            'password' => 'fdsfsafd'
        ];
        //验证器是个类
        $validate = new User;//实例化验证类
        if (!$validate->check($data)) {//检验验证
            return $validate->getError();//如果姓名为空就输出’姓名不能为空‘
        }
        return '验证成功';
    }
}

922103-20180430152137508-1710208011.png

独立验证

//独立验证 使用think\validate里的rule方法,就是对$rule的初始化,使用内置的Validate的静态代理
    public function test4(){
        $rule=[
            'name|姓名'=>[  //姓名是name的别名,用于输出错误信息
                'require',  //必填
                'max'=>20,  //最大长度
                'min'=>5,   //最小长度
            ],
            'email'=>[
                'require',
                'email'=>'email',//必须是email格式
            ],
            'password'=>[
                'require',
                'max'=>20,
                'min'=>8,
                'alphaNum'//必须是字母或数字
            ]
        ];
        $data = [
            'name' => 'xiaxuu',
            'email' => '2112343@qq.com',
            'password' => 'fdsfsafd'
        ];
        Validate::rule($rule);//添加了验证规则
        if(!Validate::check($data)){
            return Validate::getError();
        }
        return '验证通过';
    }

转载于:https://www.cnblogs.com/webdev8888/p/8973763.html

### ThinkPHP 5.1 表单验证方法 在ThinkPHP 5.1框架中,表单验证通过内置的验证器类实现。这使得开发者可以轻松地创建复杂的验证逻辑来确保数据的有效性和安全性。 #### 创建验证器 为了使用自定义验证方法,在`application/validate`目录下新建一个文件用于定义特定业务场景下的验证规则。例如: ```php <?php namespace app\index\validate; use think\Validate; class User extends Validate { protected $rule = [ 'name' => 'require|max:20', 'email' => 'email|unique:user,email' ]; protected function sceneAdd() { return $this->only(['name', 'email']); } } ``` 此代码片段展示了如何设置基本字段验证规则以及针对不同操作场景应用不同的验证集[^1]。 #### 使用验证器 当处理来自用户的输入时,可以通过控制器中的`validate()`函数调用来执行这些预设好的验证条件。下面是一个简单的例子说明怎样在一个新增用户的过程中运用上述定义过的User验证器: ```php public function addUser(Request $request){ // 获取请求参数 $data = input('post.'); // 实例化并传入要校验的数据 $result = $this->validate($data,'app\\index\\validate\\User.add'); if(true !== $result){ // 如果返回false,则表示验证失败,并给出错误提示信息 return json(['code'=>0,'msg'=>$result]); }else{ // 验证成功后的逻辑... return json(['code'=>1,'msg'=>'success']); } } ``` 这段程序首先收集POST提交过来的信息作为待检验对象;接着利用`$this->validate()`来进行合法性判断——如果不符合设定的标准就会立即停止后续流程并向客户端反馈具体原因;反之则继续正常流转下去完成相应功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值