tp5使用validate验证器

作者: xahy 分类: 笔记 发布时间: 2019-07-26 13:56

无论是后台操作还是api,

都少不了对数据的效验。

现在的框架都有相关的验证机制,

如 tp5的validate、laravel 的 FormRequest。

 

在框架中的具体使用可参考此demo:

controller代码:

<?php
namespace app\admin\controller;

use think\Controller;

class Admin extends Controller
{

    /***
     * 管理员新增
     * @return mixed
     */
    public function  add (){
        if(request()->isPost()){
            ///参数
            $data = input("post.");

            ///调用validate验证
            $validate = validate("AdminUser");
            if(! $validate->check($data)){
                $this->error($validate->getError());
            }

            ///生成密码hash
            $data['password'] = password_hash($data['password'], PASSWORD_BCRYPT, ['cost' => 12]);

            ///新增操作
            $AdminUserModel = model('AdminUser');
            try{
                $user_id = $AdminUserModel->add($data);
            }catch(\Exception $e){
                $this->error($e->getMessage());
            }

            empty($user_id) ? $this->error("error") : $this->success("success,id={$user_id}");
            die;
        }else{
            return $this->fetch();
        }
    }
    
    
}

validate代码:

<?php
namespace app\common\validate;


use think\Validate;



class AdminUser extends Validate
{


    protected $rule = [
      'username'=>'require|min:6|max:20',
      'password'=>'require|min:6|max:20',
    ];

    protected $field = [
        'username'  => '管理员名称',
        'password'   => '密码',
    ];

}

 

参考资料:

验证器:https://www.kancloud.cn/manual/thinkphp5/129352

验证规则:https://www.kancloud.cn/manual/thinkphp5/129320

控制器验证:https://www.kancloud.cn/manual/thinkphp5/129354

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注