Kohana 的 Validate 校验数组

简介:这是Kohana 的 Validate 校验数组的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=343574' scrolling='no'>

由于校验类数组的这个类没有相关的文档,做个笔记,提防以后忘记

class Controller_Test extends Controller_Smarty{

public function action_index(){

$_GET=array(

'a'=>'aaaaa ',

'b'=>' '

);

$validate = Validate::factory($_GET);

//@todo 这里开始

//通过标签赋值显示字段

//参数:字段,显示名称

$validate->label('a', 'A属性');

$validate->label('b', 'b属性');

//字段设置为true的时候为全部字段

//通过回调函数验证字段合法性

//参数:字段 ,回调函数,额外参数

$callbacks=array(

array($this, 'a'),

);

$validate->callbacks('a', $callbacks);

$validate->callback('a', array($this, 'a1'),array('pas1','pas2')); // function a($validate,$field,$params)

$validate->callback('b', array($this, 'b'),array('pas1')); // function a1($validate,$field,$params)

$rule= array(

'min_length' => array(4),

'max_length' => array(32),

'regex' => array('/^[-\pL\pN_.]++$/uD'),

);

//通过规则验证字段合法性

//规则函数的参数通过数组列表形式传递

//参数:字段,规则数组

$validate->rules('a',$rule);//使用规则,规则消息在validate

//通过规则验证

//参数:字段,规则函数,参数

$validate->rule(true,'not_empty',null);//过滤

//过滤

//参数:字段,静态方法或函数,额外参数

$validate->filter(true, 'trim');//过滤

//静态方法或函数: static function fa($value,$params) 指定字段值等于返回值

$validate->filter('a', get_class($this).'::fa',array('filterparams'));

if($validate->check()){

print_r($validate['a']);

print_r($validate['b']);

}else{

//获取错误

//参数:消息文件名,是否翻译

$msg=$validate->errors('a');

print_r($msg);

$this->end();

}

}

public function a1($vaildate,$filed,$par){

//错误添加

//参数:字段,消息文件中的字段,传入到消息文件的一维数组

$vaildate->error('a', 'invalid',$par);//

}

public function a($vaildate,$filed,$par){

}

public function b($vaildate,$filed,$par){

}

public static function fa($value,$params){

return '000000000';

}

}

在ORM中调用校验配置以下数组,最后调用check方法

protected $_rules = array();

protected $_callbacks = array();

protected $_filters = array();

protected $_labels = array();

检测失败在属性: validate 中可以得到校验对象

爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

http://biancheng.dnbcw.info/php/343574.html pageNo:5
原文地址:https://www.cnblogs.com/ooooo/p/2241987.html