Yii2 验证器

Yii2 验证器

1. 声明规则 rules

可以指定:核心验证器、行内验证器、独立验证器

public function rules()
{
   return [
       // name,email,subject 和 body 特性是 `require`(必填)的
       [['name', 'email', 'subject', 'body'], 'required'],

       // email 特性必须是一个有效的 email 地址
       ['email', 'email'],
   ];
}
1.1 自定义错误信息
['message' => '自定义错误信息']
1.2 条件式验证
  ['state',  'required',  'when' => function($model) {
        return $model->country == 'USA';
    }]
1.3 数据预处理

空输入

return [
    // 若 "username" 和 "email" 为空,则设为 null
    [['username', 'email'], 'default'],

    // 若 "level" 为空,则设其为 1
    ['level', 'default', 'value' => 1],
];

2. 核心验证器

支持的内置核心验证器见: http://www.yiichina.com/doc/guide/2.0/tutorial-core-validators

3. 临时验证

对没有绑定任何模型类的值进行临时验证

3.1 方式1
$email = 'test@example.com';
$validator = new yii\validators\EmailValidator();

if ($validator->validate($email, $error)) {
    echo '有效的 Email 地址。';
} else {
    echo $error;
}
3.2 方式2
public function actionSearch($name, $email)
{
    $model = new DynamicModel(compact('name', 'email'));
    $model->addRule(['name', 'email'], 'string', ['max' => 128])
        ->addRule('email', 'email')
        ->validate();

    if ($model->hasErrors()) {
        // 验证失败
    } else {
        // 验证成功
    }
}

4. 创建验证器

4.1 行内验证器
4.2 独立验证器

5. 捕获错误

    //获取所有属性的第一个错误提示
   $model->getFirstErrors()

    //获取第一个错误提示
   reset($model->getFirstErrors())

转载于:https://my.oschina.net/flyrobin/blog/1204327

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值