简介:这是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 中可以得到校验对象