yii\validators\DateValidator::validateAttribute PHP Метод

validateAttribute() публичный Метод

public validateAttribute ( $model, $attribute )
    public function validateAttribute($model, $attribute)
    {
        $value = $model->{$attribute};
        $timestamp = $this->parseDateValue($value);
        if ($timestamp === false) {
            if ($this->timestampAttribute === $attribute) {
                if ($this->timestampAttributeFormat === null) {
                    if (is_int($value)) {
                        return;
                    }
                } else {
                    if ($this->parseDateValueFormat($value, $this->timestampAttributeFormat) !== false) {
                        return;
                    }
                }
            }
            $this->addError($model, $attribute, $this->message, []);
        } elseif ($this->min !== null && $timestamp < $this->min) {
            $this->addError($model, $attribute, $this->tooSmall, ['min' => $this->minString]);
        } elseif ($this->max !== null && $timestamp > $this->max) {
            $this->addError($model, $attribute, $this->tooBig, ['max' => $this->maxString]);
        } elseif ($this->timestampAttribute !== null) {
            if ($this->timestampAttributeFormat === null) {
                $model->{$this->timestampAttribute} = $timestamp;
            } else {
                $model->{$this->timestampAttribute} = $this->formatTimestamp($timestamp, $this->timestampAttributeFormat);
            }
        }
    }

Usage Example

Пример #1
0
 public function testValidateAttribute()
 {
     // error-array-add
     $val = new DateValidator();
     $model = new FakedValidationModel();
     $model->attr_date = '2013-09-13';
     $val->validateAttribute($model, 'attr_date');
     $this->assertFalse($model->hasErrors('attr_date'));
     $model = new FakedValidationModel();
     $model->attr_date = '1375293913';
     $val->validateAttribute($model, 'attr_date');
     $this->assertTrue($model->hasErrors('attr_date'));
     //// timestamp attribute
     $val = new DateValidator(['timestampAttribute' => 'attr_timestamp']);
     $model = new FakedValidationModel();
     $model->attr_date = '2013-09-13';
     $model->attr_timestamp = true;
     $val->validateAttribute($model, 'attr_date');
     $this->assertFalse($model->hasErrors('attr_date'));
     $this->assertFalse($model->hasErrors('attr_timestamp'));
     $this->assertEquals(DateTime::createFromFormat($val->format, '2013-09-13')->getTimestamp(), $model->attr_timestamp);
     $val = new DateValidator();
     $model = FakedValidationModel::createWithAttributes(['attr_date' => []]);
     $val->validateAttribute($model, 'attr_date');
     $this->assertTrue($model->hasErrors('attr_date'));
 }
All Usage Examples Of yii\validators\DateValidator::validateAttribute