yii\validators\UrlValidator::validateAttribute PHP Method

validateAttribute() public method

public validateAttribute ( $model, $attribute )
    public function validateAttribute($model, $attribute)
    {
        $value = $model->{$attribute};
        $result = $this->validateValue($value);
        if (!empty($result)) {
            $this->addError($model, $attribute, $result[0], $result[1]);
        } elseif ($this->defaultScheme !== null && strpos($value, '://') === false) {
            $model->{$attribute} = $this->defaultScheme . '://' . $value;
        }
    }

Usage Example

Example #1
0
 public function testValidateAttributeAndError()
 {
     $obj = new FakedValidationModel();
     $obj->attr_url = 'http://google.de';
     $val = new UrlValidator();
     $val->validateAttribute($obj, 'attr_url');
     $this->assertFalse($obj->hasErrors('attr_url'));
     $this->assertSame('http://google.de', $obj->attr_url);
     $obj = new FakedValidationModel();
     $val->defaultScheme = 'http';
     $obj->attr_url = 'google.de';
     $val->validateAttribute($obj, 'attr_url');
     $this->assertFalse($obj->hasErrors('attr_url'));
     $this->assertTrue(stripos($obj->attr_url, 'http') !== false);
     $obj = new FakedValidationModel();
     $obj->attr_url = 'gttp;/invalid string';
     $val->validateAttribute($obj, 'attr_url');
     $this->assertTrue($obj->hasErrors('attr_url'));
 }