zoukankan      html  css  js  c++  java
  • yii自定义验证

    • 自定义验证类
      class BaseModel extends Model {
        public function rules() {
              return [
                  ['obj', ContentSecurityValidator::class],
              ];
          }
        public function exec() {
              if (!$this->validate()) {
                  return [
                      'errors' => $this->errors
                  ];
              }
         }
        public function attributeLabels() {
              return [
                  'obj' => '标签',
              ];
          }
      }
      
      /**
      * 自定义验证类
      */
      class BaseValidator extends Validator {
      
           /**
           * 必须要实现该方法
           * @param yiiaseModel $model
           * @param string $attribute 参数名
           * @return bool
           */
          public function validateAttribute($model, $attribute) {
              $attributeValue = $model->$attribute;//获取$model里面的参数的值
              $attributes = $model->attributes;//获取model里面的参数数组
              $attributeLabels = $model->attributeLabels();//获取model里面的已经设置好参数对应标签
              
          }
      }
    • 自定义验证方法
      class BaseModel extends Model {
        public function rules() {
              return [
                  ['obj', 'validate'],
              ];
          }
        public function exec() {
              if (!$this->validate()) {
                  return [
                      'errors' => $this->errors
                  ];
              }
         }
        public function attributeLabels() {
              return [
                  'obj' => '标签',
              ];
          }
        /**
         * 自定义方法
         */
        public function validate($attribute) {
              $attributeValue = $this->$attribute;//获取$model里面的参数的值
              $attributes = $this->attributes;//获取model里面的参数数组
              $attributeLabels = $this->attributeLabels();//获取model里面的已经设置好参数对应标签
              
          }
      }
      
          
    • 不刷新,通过切换select的按钮,面对不同场景时,设置某些必填项
      public function rules() {
              return [
                  [['email', 'phone'], "requiredValidators", 'skipOnEmpty' => false, 'skipOnError' => false],
              ];
          }
      
          public function requiredValidators($attribute) {
              if ($this->typeId == 'register') {
                  $isAttrEmpty = !$this->$attribute || empty($this->$attribute) || $this->$attribute === '' || $this->$attribute == null;
                  if ($isAttrEmpty)
                      $this->addError($attribute, $this->attributeLabels()[$attribute] . '不能为空');
              }
          }
      
          public function attributeLabels() {
              return [
                  'email'=>'邮箱',
                  'phone'=>'手机'
              ]
          }            
  • 相关阅读:
    mitm iptables ssltrip set ferret hamster
    SQL注入的常用函数和语句
    SQL注入的字符串连接函数
    SQL注入的分类
    DNS配置详解
    Linux的任务计划--cron入门
    Linux文件系统层次结构标准
    Linux的awk命令
    Linux的sed命令
    Linux的find命令
  • 原文地址:https://www.cnblogs.com/fatRabbit-/p/11471032.html
Copyright © 2011-2022 走看看