1.内置验证器的短名称分别有:
boolean: yiivalidatorsBooleanValidator
captcha: yiicaptchaCaptchaValidator
compare: yiivalidatorsCompareValidator
date: yiivalidatorsDateValidator
default: yiivalidatorsDefaultValueValidator
double: yiivalidatorsNumberValidator
each: yiivalidatorsEachValidator
email: yiivalidatorsEmailValidator
exist: yiivalidatorsExistValidator
file: yiivalidatorsFileValidator
filter: yiivalidatorsFilterValidator
image: yiivalidatorsImageValidator
in: yiivalidatorsRangeValidator
integer: yiivalidatorsNumberValidator
match: yiivalidatorsRegularExpressionValidator
required: yiivalidatorsRequiredValidator
safe: yiivalidatorsSafeValidator
string: yiivalidatorsStringValidator
trim: yiivalidatorsFilterValidator
unique: yiivalidatorsUniqueValidator
url: yiivalidatorsUrlValidator
2. 下面举个例子
1 public function rules() { 2 return [ 3 [['name', 'password', 'email'], 'required'], 4 ['name', 'unique', 'message'=>'{attribute}已经被占用'], 5 ['name', 'string', 'min'=>3, 'max'=>16, 'message'=>'{attribute}的长度必须在3~16之间'], 6 ['email', 'email', 'message'=>'请输入正确的{attribute}'], 7 ['password', 'string', 'min'=>8, 'max'=>16, 'message'=>'{attribute}的长度必须在8~16之间'], 8 ]; 9 }
最后验证这些规则只需要用model调用validate()方法即可,例子如下:
1 //将user对象保存到mongo数据库中 2 public function saveUser($name, $password, $email) { 3 $user = new User(); 4 $user->name = $name; 5 $user->password = $password; 6 $user->email = $email; 7 //在这里用$user调用yiivalidatorsValidatotr::validate()进行验证所有的属性 8 if ($user->validate()) { 9 $user->insert(); 10 } else { 11 return $user->errors; 12 } 13 }