SpeedPHP技术交流论坛

 找回密码
 论坛注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 167|回复: 5

创建自己的spVerifier验证规则时,能否读取其他字段 [复制链接]

Rank: 4

发表于 2012-1-26 14:51:27 |显示全部楼层
spVerifier有一个内置功能叫equalto,可以这样用:
  1. "rules" => array( // 规则
  2.                         'password' => array(  // 这里是对密码的验证规则
  3.                                 'notnull' => TRUE, // 密码不能为空
  4.                                 'minlength' => 5,  // 密码长度不能小于5
  5.                                 'maxlength' => 12, // 密码长度不能大于12
  6.                         ),
  7.                         'comfirm_password' => array(  // 这里是对第二次输入的密码的验证规则
  8.                                 'equalto' => 'password', // 要等于'password',也就是要与上面的密码相等
  9.                         ),               
复制代码



也就是说,只要给出相应的规则字段名即可获取到其他字段的名字,然后做判断。
我目前的需求是,在定义规则里读取两个这样的字段名,然后做一个判断。但是现在遇到了一些困难。
我看了一下spModel里的源码,equalto是这样实现的:

  1. private function equalto($val, $right){dump($this);return $val == $this->checkvalues[$right];}
复制代码



而这里的$this->checkvalues是在spVerifier里定义的private变量,如果在外部创建自己的验证规则,是没法调用的。

特来求助

Rank: 4

发表于 2012-1-26 14:53:13 |显示全部楼层
呃,这里我没法编辑自己的帖子么?
第二段代码多了一个 dump($this); 是我调试的时候加上的,不是原有的哈

Rank: 4

发表于 2012-1-26 14:53:31 |显示全部楼层
呃,这里我没法编辑自己的帖子么?
第二段代码多了一个 dump($this); 是我调试的时候加上的,不是原有的哈

Rank: 4

发表于 2012-1-26 14:53:53 |显示全部楼层
呃,这里我没法编辑自己的帖子么?
第二段代码多了一个 dump($this); 是我调试的时候加上的,不是原有的哈

管理员

@speedphp

Rank: 9Rank: 9Rank: 9

发表于 2012-1-26 15:08:13 |显示全部楼层
你可以这样获取到其他的字段,不需要使用spVerifier的private变量(也是因为这个变量不允许直接读取,所以才private的)

function equalto2($val, $right, $args){
// 这里$args就是全部的输入数据
dump($args);

}
提问前注意:请先查手册、搜索本站和搜索论坛来查找答案,大部分问题都在手册和论坛旧贴中能够得到解答!

提问时注意要把问题说清楚,最好包括:代码、错误提示、截图等

Rank: 4

发表于 2012-1-26 18:49:18 |显示全部楼层
你可以这样获取到其他的字段,不需要使用spVerifier的private变量(也是因为这个变量不允许直接读取,所以 ...
jake 发表于 2012-1-26 15:08



      啊,感谢jake原来那句“其他的输入字符”就是这个意思,是我看的时候疏忽了~
您需要登录后才可以回帖 登录 | 论坛注册

Archiver|SpeedPHP.com ( 粤ICP备08008671号 )  

GMT+8, 2012-2-23 05:44

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部