thinkphp5.0学习笔记(五)

1、验证器的使用

验证器的调用

普通调用

$data = [
    'name' => '',
    'age' => 100,
    'sex' => 0,
    'phone' => 13752812824
];

$v = new Validate();      
$v->rule([
    'name' => 'require|length: 1,25',
    'sex' => 'require|in: 0,1',
]);

$v->message([
    'name.require' => '请输入名字',
    'name.length' => '名字的长度是1到25之间',
    'sex.require' => '请输入性别',
    'sex.in' => '性别必需为0或者1'
]);

$res = $v->check($data);
dump($res);
//输出false
dump($v->getError());
//输出 请输入名字

另一种调用

$validate = (new Validate([
    ['name', 'require|max:25', '请输入名字|名字长度最大不能超过25'],
    ['age','require|<:200', '请填充入年龄|年龄不能超过200'],
    ['sex', 'in:0,1', '性别必需为0或者1'],
    ['phone', 'require|unique:user,phone|regex:\d{11}', '请输入电话|电话已经被注册了|电话的长度为11位数']
]));
$res = $validate->check($data); dump($res); dump($validate->getError()); if($res === false) { dump(User::getInfo()); } $v = validate('VUser')->check($data); dump($v); dump(validate('VUser')->getError());

也可以单独分离出来,建立单独的文件

<?php
namespace app\index\validate;
use think\Validate;
class VUser extends Validate
{
    protected $rule = [
        ['name', 'require|max:25', '请输入名字|名字长度最大不能超过25'],
        ['age','require|<:200', '请填充入年龄|年龄不能超过200'],
        ['sex', 'in:0,1', '性别必需为0或者1'],
        ['phone', 'require|unique:user,phone|regex:\d{11}', '请输入电话|电话已经被注册了|电话的长度为11位数']
    ];

    protected $scene = [
        'abc' => ['name', 'age'],
        'efg' => ['sex', 'phone']
    ];

}

调用

public function index(){
    $data = [
        'name' => '',
        'age' => 100,
        'sex' => 0,
        'phone' => 13752812824
    ];
    $v = validate('VUser');     //方式一
//    $v = Loader::validate('VUser');  //方式二
//    $v = new VUser();                //方式三
    $res = $v->scene('efg')->check($data);
    $msg = $v->getError();
    dump($res);
    dump($msg);
}

10、常用常量

  IS_WIN:判断当前是否是window系统

  THINK_PATH:返回的是当前thinkphp的工作目录

  APP_PATH:返回的是application的工作目录

猜你喜欢

转载自www.cnblogs.com/rickyctbu/p/11605296.html
今日推荐