求助关于自定义验证规则

#1 eoneliu

我想编写一个验证用户是否存在的验证规则。。但是不知道该怎么写。请大家帮忙指点指点
class Users extends spModle{
var $addrules = array(  
'is_exists' => 'exists', //  '规则名称' => '验证函数名'  
);  
var $verifier = array(  
"rules" => array(
  'username' => array(
   'is_exists' => 'exists', //还是  'is_exists' => true,
  )
}

//modle 中 的 独立函数。
function exists($val, $right){
$conditions = array('username' => $val);
  if ($this -> findBy($conditions)){  //或是 findCount($conditions);
  return true;
}else{
  return false;
}
}

===========================================
还有第二个问题。
如果表单提交出差。我想讲用户提交信息在 回显。

难道只能 是
$this -> username = $this -> spArgs('username');
$this -> age = $this -> spArgs('age');
.....

smarty 可以直接显示数组。咱们有啥简便的方法没? 还有个疑问。为啥每个 文件都 没有php的 结束标示呢?

2010-05-10 11:34:04

#2 jake

1. 验证规则这个你做的没有错。不过因为不在类的身体里面,那个独立函数里面的$this恐怕是不能执行的。所以下面是Users类的额成员函数

class Users extends spModle{
var $addrules = array(  
'is_exists' => array('Users','exists'), //  '规则名称' => '验证函数名'  
);  
var $verifier = array(  
"rules" => array(
  'username' => array(
   'is_exists' => true', //, 是'is_exists' => true,因为你的后面的函数是返回true,不过这里建议要用false!,因为是在“不存在相同用户”的情况才“通过”
  )
}

//Users 中 的 成员函数。
function exists($val, $right){
$conditions = array('username' => $val);
  if ($this -> find($conditions)){  //或是 findCount($conditions); find,findCount两个都可以
  return true;
}else{
  return false;
}
}
2. 将表单资料返回到模板 $this->info_array = $this->spArgs();
3. 没有?>结束符,更好,这样不会造成空白文字。

2010-05-10 11:46:35

#3 eoneliu

哇哈哈!!!

老大回复太迅速啦。。赞一个!!

2010-05-10 11:52:31