Yii CModel中rules验证规则[转],yiicmodel
Yii CModel中rules验证规则[转],yiicmodel
<span>array</span><span>( </span><span>array</span>(‘username’, ‘required’), <span>array</span>(‘username’, ‘length’, ‘<span>min</span>’=>3, ‘<span>max</span>’=>12), <span>array</span>(‘password’, ‘compare’, ‘compareAttribute’=>’password2′, ‘on’=>’register’), <span>array</span>(‘password’, ‘authenticate’, ‘on’=>’login’), <span>array</span>(‘Price’,’numerical’, ‘integerOnly’=><span>true</span>),<span> ); </span><span>public</span> <span>function</span><span> rules() { </span><span>return</span> <span>array</span><span>( </span><span>array</span>(‘title, content, status’, ‘required’), <span>array</span>(‘title’, ‘length’, ‘<span>max</span>’=>128), <span>array</span>(‘status’, ‘in’, ‘<span>range</span>’=><span>array</span>(1,2,3)), <span>array</span>(‘tags’, ‘match’, ‘pattern’=>’/^[\w\s,]+$/’,<span> ‘message’</span>=>’Tags can only contain word characters.’), <span>array</span>(‘tags’, ‘normalizeTags’), <span>array</span>(‘title, status’, ‘safe’, ‘on’=>’search’),<span> ); }</span>
预定义完整列表:
-
boolean
: CBooleanValidator 的别名, 确保属性的值是CBooleanValidator::trueValue 或CBooleanValidator::falseValue . -
captcha
: CCaptchaValidator 的别名,确保了特性的值等于 CAPTCHA 显示出来的验证码. -
compare
: CCompareValidator 的别名, 确保了特性的值等于另一个特性或常量. -
email
: CEmailValidator 的别名,确保了特性的值是一个有效的电邮地址. -
default
: CDefaultValueValidator 的别名, 为特性指派了一个默认值. -
exist
: CExistValidator 的别名, 确保属性值存在于指定的数据表字段中. -
file
: CFileValidator 的别名, 确保了特性包含了一个上传文件的名称. -
filter
: CFilterValidator 的别名, 使用一个filter转换属性. -
in
: CRangeValidator 的别名, 确保了特性出现在一个预订的值列表里. -
length
: CStringValidator 的别名, 确保了特性的长度在指定的范围内. -
match
: CRegularExpressionValidator 的别名, 确保了特性匹配一个正则表达式. -
numerical
: CNumberValidator 的别名, 确保了特性是一个有效的数字. -
required
: CRequiredValidator 的别名, 确保了特性不为空. -
type
: CTypeValidator 的别名, 确保了特性为指定的数据类型. -
unique
: CUniqueValidator 的别名, 确保了特性在数据表字段中是唯一的. -
url
: CUrlValidator 的别名, 确保了特性是一个有效的路径
yii验证rulesit 分类: Yii yii的rules验证 cValidator主要属性 attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError
经常用到的属性有 attributes,builtInvalidators,message,on这四个
下面是对应的验证类
required: CRequiredValidator
filter: CFilterValidator
match: CRegularExpressionValidator
email: CEmailValidator
url: CUrlValidator
unique: CUniqueValidator
compare: CCompareValidator
length: CStringValidator
in: CRangeValidator
numerical: CNumberValidator
captcha: CCaptchaValidator
type: CTypeValidator
file: CFileValidator
default: CDefaultValueValidator
exist: CExistValidator
boolean: CBooleanValidator
date: CDateValidator
safe: CSafeValidator
unsafe: CUnsafeValidator
1、CRequiredValidator – 必须值验证属性
requiredValue-mixed-所需的值
strict-boolean-是否比较严格
实例: array(‘username’, ‘required’), 不能为空
array(‘username’, ‘required’, ‘requiredValue’=>’lh’,’message’=> ‘usernmae must be lh’), 这个值必须为lh,如果填其他值还是会验证不过
array(‘username’, ‘required’, ‘requiredValue’=>’lh’, ‘strict’=>true), 严格验证 还可以在后面加 ‘message’=>”,’on’=>这些
2、CFilterValidator 过滤验证属性
filter – 方法名 (调用用户自己定义的函数)
实例:
array(‘username’, ‘test’) function test() { $username = $this->username; if($username != ‘lh’){ $this->addError(‘username’, ‘username must be lh’); } }
使用这个方法如果你还在array里面写message=>”,给出的提示信息还是你的test里面的。也就是以test里面的错误信息为准
3、CRegularExpressionValidator -
正则验证属性allowEmpty – 是否为空(默认true)
not-是否反转的验证逻辑(默认false) pattern – 正则表达式匹配实例:
// 匹配a-z array(‘username’, ‘match’, ‘allowEmpty’=>true, ‘pattern’=>’/[a-z]/i’,’message’=>’必须为字母’),
// 匹配不是a-z array(‘username’, ‘match’, ‘allowEmpty’=>true, ‘not’=>true, ‘pattern’=>’/[a-z]/i’,’message’=>’必须不是字母’),
4、CEmailValidator –邮箱验证属性:
allowEmpty – 是否为空
allowName – 是否允许在电子邮件地址的名称
checkMx – 是否检查电子邮件地址的MX记录
checkPort – 是否要检查端口25的电子邮件地址
fullPattern – 正则表达式,用来验证电子邮件地址与名称的一部分
pattern – 正则表达式,
用来验证的属性值实例: array(‘username’, ‘email’, ‘message’=>’必须为电子邮箱’, ‘pattern’=>’/[a-z]/i’),
5、CUrlValidator – url验证属性:
allowEmpty – 是否为空
defaultScheme – 默认的URI方案
pattern – 正则表达式
validSchemes – 清单应视为有效的URI计划。
实例:
array(‘username’, ‘url’, ‘message’=>’must url’),
array(‘username’, ‘url’, ‘defaultScheme’=>’http://www.baidu.com’),
6、CUniqueValidator – 唯一性验证属性:
allowEmpty – 是否为空
attributeName – 属性名称
caseSensitive – 区分大小写
className – 类名
criteria – 额外的查询条件
实例:
array(‘username’, ‘unique’, ‘message’=>’该记录存在’),
array(‘username’, ‘unique’, ‘caseSensitive’=>false, ‘message’=>’该记录存在’),
7、CCompareValidator – 比较验证属性:
allowEmpty – 是否为空
compareAttribute – 需要比较的属性
compareValue -比较的值
operator – 比较运算符
strict – 严格验证(值和类型都要相等)
实例: // 与某个值比较 array(‘username’, ‘compare’, ‘compareValue’=>’10′, ‘operator’=>’>’, ‘message’=>’必须大于10′),
// 与某个提交的属性比较 array(‘username’, ‘compare’, ‘compareAttribute’=& gt;’password’, ‘operator’=>’>’, ‘message’=>’必须大于password’),
8、CStringValidator – 字符串验证属性:
allowEmpty – 是否为空
encoding – 编码
is – 确切的长度
max – 最大长度
min – 最小长度
tooLong – 定义值太大的错误
tooShort – 定义最小长度的错误
实例: array(‘username’, ‘length’, ‘max’=>10, ‘min’=>5, ‘tooLong’=>’太长了’, ‘tooShort’=>’太短了’),
array(‘username’, ‘length’, ‘is’=>5, ‘message’=>’长度必须为5′),
9、CRangeValidator – 在某个范围内属性:
allowEmpty – 是否为空
not – 是否反转的验证逻辑。
range – array范围
strict – 严格验证(类型和值都要一样)
实例: array(‘username’, ‘in’, ‘range’=>array(1,2,3,4,5), ‘message’=>’must in 1 2 3 4 5′),
array(‘username’, ‘in’, ‘not’=>true, ‘range’=>array(1,2,3,4,5), ‘message’=>’must not in 1 2 3 4 5′),
10、CNumberValidator – 数字验证属性:
allowEmpty – 是否为空
integerOnly – 整数
integerPattern – 正则表达式匹配整数
max – 最大值
min – 最小值
numberPattern – 匹配号码
tooBig – 值太大时的错误提示
tooSmall – 值太小时的错误提示
实例: array(‘username’, ‘numerical’, ‘integerOnly’=>true, ‘message’=>’must be int’),
array(‘username’, ‘numerical’, ‘integerOnly’=>true, ‘message’=>’must be int’, ‘max’=>100, ‘min’=>10, ‘tooBig’=>’is too big’, ‘tooSmall’=>’is too small’),
11、CCaptchaValidator – 验证码验证属性:
allowEmpty – 是否为空
caseSensitive – 区分大小写
12、CTypeValidator – 类型验证属性:
allowEmpty – 是否为空
dateFormat – 日期应遵循的格式模式(‘MM/dd/yyyy’)
datetimeFormat – 日期时间应遵循的格式模式(‘MM/dd/yyyy hh:mm’)
timeFormat – 时间应遵循的格式模式(‘hh:mm’)
type – 类型 ‘string’, ‘integer’, ‘float’, ‘array’, ‘date’, ‘time’ and ‘datetime’
实例: array(‘username’, ‘type’, ‘dateFormat’=>’MM/dd/yyyy’, ‘type’=>’date’),
13、CFileValidator – 文件验证属性:
allowEmpty – 是否为空
maxFiles – 最大文件数
maxSize – 文件的最大值
minSize – 最小值
tooLarge – 太大时的错误信息
tooMany – 太多时的错误信息
tooSmall – 太小时的错误信息
types – 允许的文件扩展名
wrongType – 扩展名错误时给出的错误信息
14、CDefaultValueValidator – 默认值属性:
setOnEmpty – 设置为空
value – 默认值
实例: array(‘username’, ‘default’, ‘setOnEmpty’=>true, ‘value’=>’lh’),
15、CExistValidator – 是否存在属性:
allowEmpty = 是否为空
attributeName – 属性名称
className – 类名
criteria – 标准
16、CBooleanValidator – 布尔类型验证属性:
allowEmpty – 是否为空
falseValue – 错误状态的值
strict – 严格验证
trueValue – 真实状态的值
实例: array(‘username’, ‘boolean’, ‘trueValue’=>1, ‘falseValue’=>-1, ‘message’=>’the value must be 1 or -1′),
17、CDateValidator – 日期验证属性:
allowEmpty – 是否为空
format – 日期值应遵循的格式模式
timestampAttribute – 接收解析结果的属性名称
实例: array(‘username’, ‘date’, ‘format’=>’MM-dd-yyyy’,’message’=>’must be MM-dd-yyyy’),
yxmhero1989.blog.163.com/...61864/
本文描述yii验证码的实现,仅仅是笔者应用的一个小例子,网上也有,总结一下,希望帮助到有需要的Yii爱好者。1、笔者用的是用户登录,所以在sitecontroller中加以下代码: public function actions()
{
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
‘captcha’=>array(
‘class’=>’CCaptchaAction’,
‘backColor’=>0xFFFFFF, //背景颜色
‘minLength’=>4, //最短为4位
‘maxLength’=>4, //是长为4位
‘transparent’=>true, //显示为透明,当关闭该选项,才显示背景颜色
),
);
}
2、在表单文件中加如下代码(视图文件如login.php):
labelEx($model,’verifyCode’); ?>
widget(‘CCaptcha’); ?>
textField($model,’verifyCode’); ?>
输入验证码
error($model,’verifyCode’); ?>
3、在Loginform模型(LoginForm.php)中 加入如下代码,主要是添加属性字段,否则会报错(不存在的属性 ) public $username;
public $password;
public $verifyCode;
public $rememberMe;
private $_identity; 通过上面的操作实际上我们已经可以看到验证码了,但是在操作的时候我们会发现不输入验证码仍然可以,原因在于我们还没有指定验证是必须的,在LoginForm.php中加上array(‘verifyCode’,'required’)来指定必须,这时我们如果遗漏验证码,将会如下图所示:
本文描述yii验证码的实现,仅仅是笔者应用的一个小例子,网上也有,总结一下,希望帮助到有需要的Yii爱好者。1、笔者用的是用户登录,所以在sitecontroller中加以下代码......余下全文>>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dengan perkembangan berterusan teknologi pengkomputeran awan, sandaran data telah menjadi sesuatu yang mesti dilakukan oleh setiap perusahaan. Dalam konteks ini, amat penting untuk membangunkan sistem sandaran awan yang sangat tersedia. Rangka kerja PHP Yii ialah rangka kerja berkuasa yang boleh membantu pembangun membina aplikasi web berprestasi tinggi dengan cepat. Berikut akan memperkenalkan cara menggunakan rangka kerja Yii untuk membangunkan sistem sandaran awan yang sangat tersedia. Mereka bentuk model pangkalan data Dalam rangka kerja Yii, model pangkalan data adalah bahagian yang sangat penting. Kerana sistem sandaran data memerlukan banyak jadual dan hubungan

Memandangkan permintaan untuk aplikasi web terus berkembang, pembangun mempunyai lebih banyak pilihan dalam memilih rangka kerja pembangunan. Symfony dan Yii2 ialah dua rangka kerja PHP yang popular Kedua-duanya mempunyai fungsi dan prestasi yang berkuasa, tetapi apabila berhadapan dengan keperluan untuk membangunkan aplikasi web berskala besar, rangka kerja manakah yang lebih sesuai? Seterusnya kami akan menjalankan analisis perbandingan Symphony dan Yii2 untuk membantu anda membuat pilihan yang lebih baik. Gambaran Keseluruhan Asas Symphony ialah rangka kerja aplikasi web sumber terbuka yang ditulis dalam PHP dan dibina di atas

Rangka kerja Yii ialah rangka kerja aplikasi Web PHP sumber terbuka yang menyediakan pelbagai alatan dan komponen untuk memudahkan proses pembangunan aplikasi Web, yang mana pertanyaan data merupakan salah satu komponen penting. Dalam rangka kerja Yii, kita boleh menggunakan sintaks seperti SQL untuk mengakses pangkalan data untuk membuat pertanyaan dan memanipulasi data dengan cekap. Pembina pertanyaan rangka kerja Yii terutamanya termasuk jenis berikut: pertanyaan ActiveRecord, pertanyaan QueryBuilder, pertanyaan arahan dan pertanyaan SQL asal

Memandangkan Internet terus berkembang, permintaan untuk pembangunan aplikasi web juga semakin tinggi. Bagi pembangun, membangunkan aplikasi memerlukan rangka kerja yang stabil, cekap dan berkuasa, yang boleh meningkatkan kecekapan pembangunan. Yii ialah rangka kerja PHP berprestasi tinggi terkemuka yang menyediakan ciri yang kaya dan prestasi yang baik. Yii3 ialah versi generasi seterusnya bagi rangka kerja Yii, yang seterusnya mengoptimumkan prestasi dan kualiti kod berdasarkan Yii2. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Yii3 untuk membangunkan aplikasi PHP.

Dalam era maklumat semasa, data besar, kecerdasan buatan, pengkomputeran awan dan teknologi lain telah menjadi tumpuan perusahaan utama. Di antara teknologi ini, teknologi pemaparan kad grafik, sebagai teknologi pemprosesan grafik berprestasi tinggi, telah mendapat perhatian yang lebih. Teknologi pemaparan kad grafik digunakan secara meluas dalam pembangunan permainan, filem dan kesan khas televisyen, pemodelan kejuruteraan dan bidang lain. Bagi pembangun, memilih rangka kerja yang sesuai dengan projek mereka adalah keputusan yang sangat penting. Antara bahasa semasa, PHP ialah bahasa yang sangat dinamik Beberapa rangka kerja PHP yang sangat baik seperti Yii2, Ph

Jika anda bertanya "Apakah Yii?", lihat tutorial saya sebelum ini: Pengenalan kepada Rangka Kerja Yii, yang menyemak faedah Yii dan menggariskan perkara baharu dalam Yii 2.0, yang dikeluarkan pada Oktober 2014. Hmm> Dalam siri Pengaturcaraan dengan Yii2 ini, saya akan membimbing pembaca menggunakan rangka kerja Yii2PHP. Dalam tutorial hari ini, saya akan berkongsi dengan anda cara memanfaatkan fungsi konsol Yii untuk menjalankan kerja cron. Pada masa lalu, saya telah menggunakan wget - URL yang boleh diakses web - dalam tugas cron untuk menjalankan tugas latar belakang saya. Ini menimbulkan kebimbangan keselamatan dan mempunyai beberapa masalah prestasi. Semasa saya membincangkan beberapa cara untuk mengurangkan risiko dalam siri Keselamatan untuk Permulaan kami, saya berharap untuk beralih kepada arahan yang dipacu konsol

Dalam pembangunan perisian moden, membina sistem pengurusan kandungan (CMS) yang berkuasa bukanlah satu tugas yang mudah. Pembangun bukan sahaja perlu mempunyai kemahiran dan pengalaman yang luas, tetapi mereka juga perlu menggunakan teknologi dan alatan yang paling canggih untuk mengoptimumkan fungsi dan prestasi mereka. Artikel ini memperkenalkan cara menggunakan Yii2 dan GrapeJS, dua perisian sumber terbuka yang popular, untuk melaksanakan CMS bahagian belakang dan pengeditan visual bahagian hadapan. Yii2 ialah rangka kerja PHPWeb popular yang menyediakan alatan dan komponen yang kaya untuk dibina dengan cepat

yii框架:本文为大家介绍了yii将对象转化为数组或直接输出为json格式的方法,具有一定的参考价值,希望能够帮助到大家。
