jackiesun
(Fleaphp)
1
/**
* 是否是字母
*
* @param mixed $value
*
* @return boolean
*/
function validate_is_alpha($value)
{
return ctype_alpha($value);
}
/**
* 是否是字母、数字加下划线
*
* @param mixed $value
*
* @return boolean
*/
function validate_is_alnumu($value)
{
return preg_match('/[^a-zA-Z0-9_]/', $value) == 0;
}
那么我如何在model里面写规则呢?
public function rules()
{
return array(
array('title','length','max'=>64),//这里应该怎么写呢?
jackiesun
(Fleaphp)
2
有人说我 灌水。。。 
这可是我实实在在遇到 的问题撒。。。。
冤枉啊。。
我知道正则可以解决,但我正则不好。。
像 PHP 中ctype_alpha($value);这些函数都是有的啊,但我不知道怎么在model的那个规则里写?
相信以后也会有人问到这样的问题的 
zhouyang
(Zhouyang0304)
3
你可以参考一下用户登陆验证的那个LoginForm
return array(
// username and password are required
array('username, password', 'required'),
// password needs to be authenticated
array('password', 'authenticate'),
//验证码
array('captcha','captcha','message'=>'验证码不正确')
);
的这一句array(‘password’, ‘authenticate’),
authenticate就是model中自定义的一个方法
qiang
(Qiang Xue)
4
对,authenticate是个基于方法进行验证的例子。
考虑到重用性,你可以把写个验证的类(模仿/framework/validators)。使用的时候只要用:array(‘attribute’, ‘path.to.myvalidator’)就可以了。
这些在下面的教程里都有讲的:http://www.yiiframework.com/doc/guide/zh_cn/form.model