added missing maxLength validation

This commit is contained in:
Rastislav Brandobur 2023-08-28 10:51:43 +02:00
parent 2e92b89b54
commit d6c39e7d36
1 changed files with 35 additions and 1 deletions

View File

@ -152,7 +152,6 @@ class TextareaField extends FormField
return $attributes;
}
/**
* {@inheritdoc}
*/
@ -167,6 +166,41 @@ class TextareaField extends FormField
return $parent;
}
/**
* Validate this field
*
* @param Validator $validator
* @return bool
*/
public function validate($validator)
{
if (!is_null($this->maxLength) && mb_strlen($this->value ?? '') > $this->maxLength) {
$name = strip_tags($this->Title() ? $this->Title() : $this->getName());
$validator->validationError(
$this->name,
_t(
'SilverStripe\\Forms\\TextField.VALIDATEMAXLENGTH',
'The value for {name} must not exceed {maxLength} characters in length',
['name' => $name, 'maxLength' => $this->maxLength]
),
"validation"
);
return false;
}
return true;
}
public function getSchemaValidation()
{
$rules = parent::getSchemaValidation();
if ($this->getMaxLength()) {
$rules['max'] = [
'length' => $this->getMaxLength(),
];
}
return $rules;
}
/**
* Return value with all values encoded in html entities
*