入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

Yii2 Model的一些常用rules规则

创建时间:2015-06-05 投稿人: 浏览次数:10941

提示:打印出Validator::$builtInValidators可以看到被支持的所有validators

去除首尾空白字符

["email", "trim"]
或
["email", "filter", "filter" => "trim"]

字段必填

["email", "required"]

赋予默认值

["age", "default", "value" => 18]

字符串长度

["email", "string", "min" => 3, "max" => 20]
或
["email", "string", "length" => [3, 20]]

格式类型验证

// 整数格式
["age", "integer"]
// 浮点数格式
["salary", "double"]
// 数字格式
["temperature", "number"]
// 布尔格式
["isAdmin", "boolean"]
// email格式
["email", "email"]
// 日期格式
["birthday", "date"]
// URL格式
["website", "url", "defaultScheme" => "http"]

验证码

["verificationCode", "captcha"]

值在数据表中是唯一的

["email", "unique", "targetClass" => "commonmodelsUsers"]

值在数据表中已存在

["email", "exist",
    "targetClass" => "commonmodelsUser",
    "filter" => ["status" => User::STATUS_ACTIVE],
    "message" => "There is no user with such email."],

检查输入的两个值是否一致

["passwordRepeat", "required"] // 必须要加上这一句
["passwordRepeat", "compare", "compareAttribute" => "password", "operator" => "==="]

数值范围检查

["age", "compare", "compareValue" => 30, "operator" => ">="]
["level", "in", "range" => [1, 2, 3]]

使用自定义函数过滤

["email", "filter", "filter" => function($value) {
    // 在此处标准化输入的email
    return strtolower($value);
}]

文件上传

["textFile", "file", "extensions" => ["txt", "rtf", "doc"], "maxSize" => 1024 * 1024 * 1024]

图片上传

["avatar", "image", "extensions" => ["png", "jpg"],
    "minWidth" => 100, "maxWidth" => 1000,
    "minHeight" => 100, "maxHeight" => 1000,
]

使用正则表达式

["username", "match", "pattern" => "/^[a-z]w*$/i"]

更多信息请访问官方中文手册:http://www.yiichina.com/doc/guide/2.0/tutorial-core-validators

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。