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 уже существует')
        );
    }
}
22 сентября 2017, 10:11    142



Наверх