MODX валидация полей
Встроенный валидатор объектов modx
// min
$this->addValidationRule('uuid','min_uuid', 'xPDOValidationRule','xPDOMinLengthValidationRule',array(
'value' => 36,
'message' => 'Минимальная длина значения 36 символа'
));
// max
$this->addValidationRule('uuid', 'max_uuid', 'xPDOValidationRule','xPDOMaxLengthValidationRule',array(
'value' => 36,
'message' => 'Максимальная длина значения 36 символа'
));
Проверка ошибок
/* @var xPDOValidator $validator */
$validator = $this->getValidator();
if ($validator->validate() == false) {
$output = array();
$messages = $validator->getMessages();
foreach ($messages as $errorMsg) {
$output[$errorMsg['name']] = $errorMsg['message'];
}
return false;
}
Использование валидатора в классе с вызовом функции
class MyClass {
static function myCallable($value,$parameters) {
if ($value == 0) {
// Вернет ошибку
return false;
}
return true;
}
/**
* Валидатор поля uuid
*/
protected function addValidator() {
$this->addValidationRule('product_id', 'product_idExists','callable',
array($this, 'myCallable'),
array('message' => 'Тип цены с указанным uuid уже существует')
);
}
}
23 февраля 2021, 15:16 2137
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()