php tp框架验证,tp5.1验证 - thinkphp5.1框架学习 - php中文网博客

1.独立验证:也就是小范围进行数据验证,不用另外写一个验证类引入;//首先在当前控制器下引入框架的验证类;

use think\Validate;

//在需要验证的方法中写入一下代码;

//验证规则

$rule = [

'name'  => 'unique:table(表名必须有)|require|max:25',

'age'   => 'number|between:1,120',

'email' => 'email',];

//验证错误信息;

$msg = [

'name.require' => '名字不能为空',

'name.unique' => '名字不能重复'

'name.max'     => '不能超过25个字符',

'age.number'   => '年龄必须是数字',

'age.between'  => '年龄在1到120之间',

'email'        => '邮箱格式不正确',

];

//需要验证的数据;

$data = [

'name'  => '张三',

'age'   => 122,

'email' => 'zhangsan@qq.com',

];

$validate = Validate::make($rule)->message($msg);

$result = $validate->check($data);

if(!$result){

echo $validate->getError();

//ajax返回;

// return $info = ['code'=>0,'msg'=>$validate->getError()];

}

2.验证器验证

首先在和控制器平级层创建一个文件夹为validate,里面有文件,文件名对应当前的控制器名,如在admin控制器需要验证,文件名就为admin.phpnamespace app\index\validate;

use think\Validate;

class Admin extends Validate

{

//验证规则

protected $rule =   [

'name'  => 'require|max:25',

'age'   => 'number|between:1,120',

'email' => 'email',

];

//返回错误信息

protected $message  =   [

'name.require' => '名称必须',

'name.max'     => '名称最多不能超过25个字符',

'age.number'   => '年龄必须是数字',

'age.between'  => '年龄只能在1-120之间',

'email'        => '邮箱格式错误',

];

}

在控制器中调用;下面会引入上面2的验证类;namespace app\index\controller;

use think\Controller;

class Index extends Controller

{

public function index()

{

//需要验证的数据;一般为前端返回的数据;

$data = [

'name'  => 'thinkphp',

'email' => 'thinkphp@qq.com',

];

//注意app前面有一个反斜杠;

$validate = new \app\index\validate\Admin;

// $res = $validate->check($data);

if (!$validate->check($data)) {

dump($validate->getError());

}

}

}

3.验证场景就是在验证类中增加一个规则

protected $scene = [

'edit'  =>  ['name','age'],

'add' => ['name'],

];

//控制器中

//在验证场景,表示在编辑的时候,只会验证name字段;

if (!$validate->scene('edit')->check($data)) {

dump($validate->getError());

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值