yii2 框架定義的約束
public $builtInValidators = [
'boolean' => 'yii\validators\BooleanValidator',
'captcha' => 'yii\captcha\CaptchaValidator',
'compare' => 'yii\validators\CompareValidator',
'date' => 'yii\validators\DateValidator',
'default' => 'yii\validators\DefaultValueValidator',
'double' => 'yii\validators\NumberValidator',
'each' => 'yii\validators\EachValidator',
'email' => 'yii\validators\EmailValidator',
'exist' => 'yii\validators\ExistValidator',
'file' => 'yii\validators\FileValidator',
'filter' => 'yii\validators\FilterValidator',
'image' => 'yii\validators\ImageValidator',
'in' => 'yii\validators\RangeValidator',
'integer' => ['class' => 'yii\validators\NumberValidator', 'integerOnly' => true],
'match' => 'yii\validators\RegularExpressionValidator',
'number' => 'yii\validators\NumberValidator',
'required' => 'yii\validators\RequiredValidator',
'safe' => 'yii\validators\SafeValidator',
'string' => 'yii\validators\StringValidator',
'trim' => ['class' => 'yii\validators\FilterValidator', 'filter' => 'trim', 'skipOnArray' => true],
'unique' => 'yii\validators\UniqueValidator', 'url' => 'yii\validators\UrlValidator']
rules經常使用規則
//自定義
php
return $extends= [
[
['buyer_id','linkman','phone_area','buyer_id','province','city','street','zcode','is_default','type'],
'required','message'=>'{attribute} 不能爲空','on'=>['add','edit']
],
['addr_id','required','message'=>'{attribute} 不能爲空','on'=>'edit'],
[['province','city','linkman'],'match','pattern'=>'/^[\x{4e00}-\x{9fa5}]+$/u','message' => '{attribute}只能輸入中文字符',],
[['zcode','is_default','type','phone_area','phone','zcode','phone_ext','mobile'],'match','pattern'=>'/^[0-9]+$/','message' => '{attribute} 必須爲數字'],
['street', 'string', 'max' => 30],
['mobile', 'string', 'max' => 11,'min'=>11,'tooLong'=>'手機號格式爲11位的數字'],
[['phone_ext','phone_area'], 'string', 'max' => 4],
[['phone'], 'string', 'max' => 10,'min'],
['zcode','string','max'=>6,]
];
//copy
html
return array( //必須填寫array('email, username, password,agree,verifyPassword,verifyCode', 'required'), //檢查用戶名是否重複array('email','unique','message'=>'用戶名已佔用'), //用戶輸入最大的字符限制array('email, username', 'length', 'max'=>64), //限制用戶最小長度和最大長度array('username', 'length', 'max'=>7, 'min'=>2, 'tooLong'=>'用戶名請輸入長度爲4-14個字符', 'tooShort'=>'用戶名請輸入長度爲2-7個字'), //限制密碼最小長度和最大長度array('password', 'length', 'max'=>22, 'min'=>6, 'tooLong'=>'密碼請輸入長度爲6-22位字符', 'tooShort'=>'密碼請輸入長度爲6-22位字符'),//判斷用戶輸入的是不是郵件array('email','email','message'=>'郵箱格式錯誤'), //檢查用戶輸入的密碼是不是同樣的array('verifyPassword', 'compare', 'compareAttribute'=>'password', 'message'=>'請再輸入確認密碼'),//檢查用戶是否贊成協議條款array('agree', 'required', 'requiredValue'=>true,'message'=>'請確認是否贊成隱私權協議條款'), //判斷是不是日期格式array('created', 'date', 'format'=>'yyyy/MM/dd/ HH:mm:ss'),
//copy
yii2
//判斷是否包含輸入的字符array('superuser', 'in', 'range' => array(0, 1)), //正則驗證器: array('name','match','pattern'=>'/^[a-z0-9\-_]+$/'), //數字驗證器: array('id', 'numerical', 'min'=>1, 'max'=>10, 'integerOnly'=>true), //類型驗證 integer,float,string,array,date,time,datetime array('created', 'type', 'datetime'), //文件驗證: array('filename', 'file', 'allowEmpty'=>true, 'types'=>'zip, rar, xls, pdf, ppt','tooLarge'=>'圖片不要超過800K'), array('url', 'file', //定義爲file類型 'allowEmpty'=>true, 'types'=>'jpg,png,gif,doc,docx,pdf,xls,xlsx,zip,rar,ppt,pptx', //上傳文件的類型 'maxSize'=>1024*1024*10, //上傳大小限制,注意不是php.ini中的上傳文件大小 'tooLarge'=>'文件大於10M,上傳失敗!請上傳小於10M的文件!' ),
public function rules()
{
return array(
//必須填寫
array('email, username, password,agree,verifyPassword,verifyCode', 'required'),
//檢查用戶名是否重複
array('email','unique','message'=>'用戶名已佔用'),
//用戶輸入最大的字符限制
array('email, username', 'length', 'max'=>64),
//限制用戶最小長度和最大長度
array('username', 'length', 'max'=>7, 'min'=>2, 'tooLong'=>'用戶名請輸入長度爲4-14個字符', 'tooShort'=>'用戶名請輸入長度爲2-7個字'),
//限制密碼最小長度和最大長度
array('password', 'length', 'max'=>22, 'min'=>6, 'tooLong'=>'密碼請輸入長度爲6-22位字符', 'tooShort'=>'密碼請輸入長度爲6-22位字符'),
//判斷用戶輸入的是不是郵件
array('email','email','message'=>'郵箱格式錯誤'),
//檢查用戶輸入的密碼是不是同樣的
array('verifyPassword', 'compare', 'compareAttribute'=>'password', 'message'=>'請再輸入確認密碼'),
//檢查用戶是否贊成協議條款
array('agree', 'required', 'requiredValue'=>true,'message'=>'請確認是否贊成隱私權協議條款'),
//判斷是不是日期格式
array('created', 'date', 'format'=>'yyyy/MM/dd/ HH:mm:ss'),
//判斷是否包含輸入的字符
array('superuser', 'in', 'range' => array(0, 1)),
//正則驗證器:
array('name','match','pattern'=>'/^[a-z0-9\-_]+$/'),
//數字驗證器:
array('id', 'numerical', 'min'=>1, 'max'=>10, 'integerOnly'=>true),
//類型驗證 integer,float,string,array,date,time,datetime
array('created', 'type', 'datetime'),
//文件驗證:
array('filename', 'file', 'allowEmpty'=>true, 'types'=>'zip, rar, xls, pdf, ppt','tooLarge'=>'圖片不要超過800K'),
array('url',
'file', //定義爲file類型
'allowEmpty'=>true,
'types'=>'jpg,png,gif,doc,docx,pdf,xls,xlsx,zip,rar,ppt,pptx', //上傳文件的類型
'maxSize'=>1024*1024*10, //上傳大小限制,注意不是php.ini中的上傳文件大小
'tooLarge'=>'文件大於10M,上傳失敗!請上傳小於10M的文件!'
),
} );