一些时候内置的验证规则对于一些特殊的需求可能不够灵活,因此你可以自己写验证规则,而且非常简单。
首先,你必须在你的model下面写一个方法来进行验证 。该方法必须接受至少一个参数(需验证的值)。如果数据是合法的,该方法返回值为真,不然的话返回值为假。举例如下:
public function validateNotEmpty($value) {
if (trim($value[key($value)]) == ”) {
return false;
} else {
return true;
}
}
一件必须注意的事是$value是一个包含一对key/value的数组。键值是你认证的field的名字,值则是用户输入
下一步和最后一步,我们必须定义我们想要使用的这个方法。这个和内置的认证规则写法一样,唯一的不同则是我们必须使用方法名字来作为rule的名字:
public $validate = array('name' => array('rule' => 'validateNotEmpty'));
你也可以写一些加上参数的验证规则。让我们假设你想要写一个验证规则来验证一个字符包括一个特定的字母。验证方法如下:
public function validateContainsChar($value, $char) {
return (strpos($value[key($value)], $char) !== false);
}
现在,如果我们想要确定"name"field的值包括"x",那么$validate 数组将是:
public $validate = array('name' => array('rule' => array('validateContainsChar', 'x')));
就这么简单,做你自己想要的任何验证!
2008年6月11日星期三
写自定义验证规则
订阅:
博文评论 (Atom)
1 条评论:
kurt, thanks for stopping by my blog. Just went through your blog by translating using Yahoo babel fish, nice site, good work.
//Jadu, India, unstableme.blogspot.com
发表评论