1.   本网站所有源码包解压密码:www.youhutong.com
会员登录  帮助问答

CodeIgniter.CI框架整合Thinkphp5.0.TP5.0表单验证器.....非常实用的表单验证器!

小川 PHP

下面我们就来说说在CI框架上如何整合TP5验证器!

  1. 下载TinkPHP5.0然后复制它的验证器文件.(下载地址:http://www.thinkphp.cn/down.html  )

  2. 验证器文件所在位置:[thinkphp\library\think\Validate.php]复制这个文件


然后就是在CI的操作:

3.在CI项目目录:application\libraries 下面新建Validate文件夹.把从TP5复制的验证器文件放到这里面去.

4.然后在:application\config\autoload.php.设置验证器文件为预加载.

//默认是:$autoload['libraries'] = array();
$autoload['libraries'] = array('Validate/Validate');

5.这时就可以新建验证器文件了:比如:新建auth验证器.文件名为 Auth.php(保存在:application\libraries\Validate\下)

内部代码为:

<?php
// +----------------------------------------------------------------------
// |		登录验证器      Author:xiaochuan     28126649@qq.com
// +----------------------------------------------------------------------
if(!defined('BASEPATH')) EXIT('No direct script asscess allowed');    
class Auth_Validate extends Validate {
    protected $rule = [
    	'phone'        => 'require|regex:/^1[34578]{1}\d{9}$/',
    	'sms_code'     => 'require|length:6',
    	'name'		   => 'require|min:4',
		'password'	   => 'require|length:6,18',
	];

	protected $message = [
		'phone.require'		 => '手机号不能为空',
		'phone.regex'		 => '手机号格式错误',
		'sms_code.require'	 => '短信验证码不能为空',
		'sms_code.length'	 => '短信验证码必须等于6位',
		'name.require'	     => '用户名不能为空',
		'name.min'	         => '用户名必须大于4个字符',
		'password.require'	 => '密码不能为空',
		'password.length'	 => '密码必须在:6-18位之间',
	];

	protected $scene = [
		'regin'        => ['phone','sms_code','name','password'],
		'login'        => ['phone','password'],
	];
}
//注意上面的东西都是自己需要写的.
$rule:验证规则
$message:提示信息
$scene:验证模型

6.那么剩下的注是如何使用了.

在控制器中调用验证器前.为了方便我们需要定义一个函数.目的就是为了方便.当然要整合TP5的验证器.真正使用时就要跟TP5用法一样才行.所以我们定义一个函数为:

/**
 * 加载验证器
 * author:xiaochuan
 * @param string $class 验证器文件名名(Auth)
 */
function validate($class=null)
{
    if(empty($class)) EXIT('No direct script asscess allowed');
    require_once(APPPATH."libraries/Validate/{$class}.php");
    $classstr = $class.'_Validate';
    $validate = new $classstr;
    return $validate;
}

7.下面就是真正在控制器中使用我们的验证器.测试效果了.GOGOGO:

//接收到的数据
$check['phone']    = param('phone');
$check['password'] = param('password');

//验证数据
$validate = validate('Auth');
if(!$validate->scene('login')->check($check)) $this->actionError($validate->getError());

这里的$this->actionError  也是我自己定义的跳转方法.不用理会.

$validate->getError();  //验证不通过就会输出上面$message对应的提示信息.

现在大功告成了.

用过TP5.0的人.看到上面的使用.是不是跟TP5中的用法一模一样了啊.

觉得不错的请点赞!


升级为VIP会员,有效期内免费下载本站所有VIP源码  点击升级为VIP

转载请注明来源地址:小川编程 » http://www.youhutong.com/index.php/article/index/30.html

( 1 )个小伙伴在吐槽
    登录帐号  如果已经登录请刷新! 发表我的评论
    表情