Yii2.0 常用rules规则

// 去除首尾空白字符
[‘email‘, ‘trim‘] 或 [‘email‘, ‘filter‘, ‘filter‘ => ‘trim‘]

// 验证字段必填
[‘email‘, ‘required‘, ‘message‘ => ‘email不能为空‘]

// 赋予默认值
[‘age‘, ‘default‘, ‘value‘ => 20]

// 验证字符串长度
[‘email‘, ‘string‘, ‘min‘ => 3, ‘max‘ => 20] 或 [‘email‘, ‘string‘, ‘length‘ => [3, 20]]

// 使用正则表达式
[‘username‘, ‘match‘, ‘pattern‘ => ‘/^[A-Za-z_\w]+$/‘, ‘message‘ => ‘username仅支持字母、数字、下划线‘]

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

// 数值范围检查
[‘age‘, ‘compare‘, ‘compareValue‘ => 30, ‘operator‘ => ‘>=‘]
[‘level‘, ‘in‘, ‘range‘ => [1, 2, 3]]

// 验证输入的两个值是否一致
[‘passwordRepeat‘, ‘required‘]
[‘passwordRepeat‘, ‘compare‘, ‘compareAttribute‘ => ‘password‘, ‘operator‘ => ‘===‘]

// 验证值在数据表中唯一
[‘email‘, ‘unique‘, ‘targetClass‘ => CommonModelsUsers::class, ‘filter‘ => [‘status‘ => User::STATUS_ACTIVE], ‘message‘ => ‘email重复‘, ‘when‘ => function ($model) {
    return $model->user_type = SYSTEM_NO;
}]

// 验证值在数据表中已存在
[‘user_email‘, ‘exist‘, ‘targetClass‘ => CommonModelsUser:class,  ‘targetAttribute‘ => [‘user_email‘ => ‘email‘], ‘filter‘ => [‘status‘ => User::STATUS_ACTIVE],  ‘message‘ => ‘There is no user with such email.‘]

// 使用自定义函数过滤
[‘email‘, ‘filter‘, ‘filter‘ => function($value) {
    // 在此处标准化输入的email
    return strtolower($value);
}]

// 验证码
[‘verificationCode‘, ‘captcha‘]

// 验证文件上传
[‘textFile‘, ‘file‘, ‘extensions‘ => [‘txt‘, ‘rtf‘, ‘doc‘], ‘maxSize‘ => 1024 * 1024 * 1024]

// 验证图片上传
[‘avatar‘, ‘image‘, ‘extensions‘ => [‘png‘, ‘jpg‘], ‘minWidth‘ => 100, ‘maxWidth‘ => 1000, ‘minHeight‘ => 100, ‘maxHeight‘ => 1000]

说明:打印Validator::$builtInValidators可以看到被支持的所有validators:

Array
(
    [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] => Array
        (
            [class] => yii\validators\NumberValidator
            [integerOnly] => 1
        )

    [match] => yii\validators\RegularExpressionValidator
    [number] => yii\validators\NumberValidator
    [required] => yii\validators\RequiredValidator
    [safe] => yii\validators\SafeValidator
    [string] => yii\validators\StringValidator
    [trim] => Array
        (
            [class] => yii\validators\FilterValidator
            [filter] => trim
            [skipOnArray] => 1
        )

    [unique] => yii\validators\UniqueValidator
    [url] => yii\validators\UrlValidator
    [ip] => yii\validators\IpValidator
)

原文地址:https://www.cnblogs.com/itsharehome/p/12275793.html

时间: 2024-10-05 23:37:30

Yii2.0 常用rules规则的相关文章

Yii2.0 常用的变量、方法、函数

<?php     defined('YII_DEBUG') or define('YII_DEBUG', true);  //当在调试模式下,应用会保留更多日志信息,如果抛出异常,会显示详细的错误调用堆栈.因此,调试模式主要适合在开发阶段使用,YII_DEBUG 默认值为 false.    return $this->render('list');                        //加载视图模板,一定要return 否则会空白    $this->render('_o

Yii2.0中rules验证的调试

通过表单模型做接口,验证返回的错误明确错误信息如下: /** 提取rules规则验证错误的信息 @param [type] $model @return void*/public static function getModelError($model) {if(empty($model)) return true;$errors = $model->getErrors(); //得到所有的错误信息 if(!is_array($errors)){ return true; } $firstErr

yii2 model常用验证规则

//字段必填[['username'],'required','message'=>'{attribute}不能为空!'][['username','password'], 'required','message'=>'{attribute}不能为空!'] //去除首尾空白字符['email', 'trim'] ['email', 'filter', 'filter' => 'trim'] //赋予默认值['age', 'default', 'value' => 18] //字符串

Yii2.0 rules常用验证规则

设置一个修改方法,但是save(),没有成功,数据修改失败,查了好久,一般情况就是不符合rules规则,而我没有设置rules规则,重新设置了一个不能为空,然后就修改成功,rules里面什么也不写,也不行!具体还在学习中!先找了找rules一般验证需要的! required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredValidator 的别名, 确保了特性不为空. em

Yii2.0模型层数据验证和thinkPHP3.2框架模型层数据验证对比

Yii2.0模型层数据验证 一般说来,程序猿永远不应该信任从最终用户直接接收到的数据,并且使用它们之前应始终先验证其可靠性.要给model填充其所需的用户输入数据,你可以调用 yii\base\Model::validate() 方法验证它们.该方法会返回一个布尔值,指明是否通过验证.若没有通过,你能通过 yii\base\Model::errors 属性获取相应的报错信息.比如 $model = new \app\models\ContactForm; // 用用户输入来填充模型的特性 $mo

学习yii2.0框架(一)

Yii 是什么 Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序.名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义,也可看作 Yes It Is! 的缩写. Yii 最适合做什么? Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用.因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应用,如门户网站.社区.内容管理系统(CMS).电子商务项目和 RESTful Web 服务等. 系统要求 Yi

Yii2.0的乐观锁与悲观锁(转)

原文:Yii2.0的乐观锁与悲观锁 Web应用往往面临多用户环境,这种情况下的并发写入控制, 几乎成为每个开发人员都必须掌握的一项技能. 在并发环境下,有可能会出现脏读(Dirty Read).不可重复读(Unrepeatable Read). 幻读(Phantom Read).更新丢失(Lost update)等情况.具体的表现可以自行搜索. 为了应对这些问题,主流数据库都提供了锁机制,并引入了事务隔离级别的概念. 这里我们都不作解释了,拿这些关键词一搜,网上大把大把的. 但是,就于具体开发过

Yii2.0 RESTful Web服务(4)

路由 随着资源和控制器类准备,您可以使用URL如 http://localhost/index.php?r=user/create访问资源,类似于你可以用正常的Web应用程序做法. 在实践中,你通常要用美观的URL并采取有优势的HTTP动词. 例如,请求POST /users意味着访问user/create动作. 这可以很容易地通过配置urlManager应用程序组件来完成 如下所示: 'urlManager' => [ 'enablePrettyUrl' => true, 'enableSt

Yii2.0框架Restfull API开发攻略

1.将Yii2.0 advanced版中应用主体frontend 或 backend 应用复制为api应用 2.在应用主体api目录的controller新建SiteController.php: namespace api\controllers; use Yii; use yii\rest\ActiveController;/*SiteController测试控制器 */class SiteController extends ActiveController{public $modelCl