ModuleValidate_EntityValidatorCompare

Package engine.modules.validate
Inheritance class ModuleValidate_EntityValidatorCompare » ModuleValidate_EntityValidator » Entity » LsObject
Since 1.0
Source Code /engine/modules/validate/entity/ValidatorCompare.entity.class.php
Валидатор сравнения значений

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
allowEmpty bool Допускать или нет пустое значение ModuleValidate_EntityValidatorCompare
bSkipOnError bool Пропускать или нет ошибку ModuleValidate_EntityValidator
compareField string Имя поля для сравнения ModuleValidate_EntityValidatorCompare
compareLabel string Название поля сущности для сравнения, используется в сообщениях об ошибках ModuleValidate_EntityValidatorCompare
compareValue string Значение для сравнения ModuleValidate_EntityValidatorCompare
fields array Список полей сущности для валидации ModuleValidate_EntityValidator
label null|string Название поля сущности для отображения в тексте ошибки ModuleValidate_EntityValidator
msg null|string Текст ошибки валидации, переопределяет текст валидатора ModuleValidate_EntityValidator
on null|array Список сценариев в которых участвует валидатор ModuleValidate_EntityValidator
operator string Оператор для сравнения ModuleValidate_EntityValidatorCompare
strict bool Строгое сравнение ModuleValidate_EntityValidatorCompare

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aData array Данные сущности, на этот массив мапятся методы set* и get* Entity
aValidateErrors array Список ошибок валидации в разрезе полей, например Entity
aValidateRules array Список правил валидации полей Entity
oEntityCurrent null|Entity Объект текущей сущности, которая проходит валидацию ModuleValidate_EntityValidator
sFieldCurrent null|string Объект текущей сущности, которая проходит валидацию ModuleValidate_EntityValidator
sPrimaryKey null|string Имя поля с первичным ключом в БД Entity
sValidateScenario string Сценарий валиадции полей Entity

Public Methods

Hide inherited methods

MethodDescriptionDefined By
Init() Метод инициализации сущности, вызывается при её создании Entity
_Validate() Выполняет валидацию данных сущности Entity
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля Entity
__construct() Если передать в конструктор ассоциативный массив свойств и их значений, то они автоматом загрузятся в сущность Entity
_addValidateError() Добавляет для поля ошибку в список ошибок Entity
_clearValidateErrors() Очищает список всех ошибок или для конкретного поля Entity
_createValidators() Создает и возвращает список валидаторов для сущности Entity
_getData() Получает массив данных сущности Entity
_getDataArray() Рекурсивное преобразование объекта и вложенных объектов в массив Entity
_getDataOne() Возвращает данные по конкретному полю Entity
_getPrimaryKey() Получение первичного ключа сущности (ключ, а не значение!) Entity
_getPrimaryKeyValue() Возвращает значение первичного ключа/поля Entity
_getValidateError() Возвращает первую ошибку для поля или среди всех полей Entity
_getValidateErrors() Возвращает список ошибок для всех полей или одного поля Entity
_getValidateScenario() Возвращает текущий сценарий валидации Entity
_getValidators() Возвращает список валидаторов с учетом текущего сценария Entity
_hasValidateErrors() Проверяет есть ли ошибки валидации Entity
_setData() Устанавливает данные сущности Entity
_setValidateScenario() Устанавливает сценарий валидации Entity
applyTo() Применять или нет сценарий к текущему валидатору ModuleValidate_EntityValidator
validate() Запуск валидации ModuleValidate_EntityValidatorCompare
validateEntity() Запускает валидацию полей сущности ModuleValidate_EntityValidator
validateEntityField() Запускает валидацию конкретного поля сущности ModuleValidate_EntityValidator

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
getMessage() Возвращает сообщение, используется для получения сообщения об ошибке валидатора ModuleValidate_EntityValidator
getValueOfCurrentEntity() Возвращает значение поля текущей сущности ModuleValidate_EntityValidator
isEmpty() Проверяет данные на пустое значение ModuleValidate_EntityValidator
setValueOfCurrentEntity() Устанавливает значение поля текущей сущности ModuleValidate_EntityValidator

Property Details

allowEmpty property
public bool $allowEmpty;

Допускать или нет пустое значение

compareField property
public string $compareField;

Имя поля для сравнения

compareLabel property
public string $compareLabel;

Название поля сущности для сравнения, используется в сообщениях об ошибках

compareValue property
public string $compareValue;

Значение для сравнения

operator property
public string $operator;

Оператор для сравнения Доступны: '=' или '==', '!=', '>', '>=', '<', '<='

strict property
public bool $strict;

Строгое сравнение

Method Details

validate() method
public bool|string validate(mixed $sValue)
$sValue mixed Данные для валидации
{return} bool|string
Source Code: /engine/modules/validate/entity/ValidatorCompare.entity.class.php#78 (show)
public function validate($sValue) {
    if(
$this->allowEmpty && $this->isEmpty($sValue)) {
        return 
true;
    }
    
/**
     * Определяем значение для сравнения
     */
    
if($this->compareValue!==null or !$this->oEntityCurrent) {
        
$sCompareLabel=$sCompareValue=$this->compareValue;
    } else {
        
$sCompareField=$this->compareField===null $this->sFieldCurrent.'_repeat' $this->compareField;
        
$sCompareValue=$this->getValueOfCurrentEntity($sCompareField);
        
$sCompareLabel=is_null($this->compareLabel) ? $sCompareField $this->compareLabel;
    }

    switch(
$this->operator) {
        case 
'=':
        case 
'==':
            if((
$this->strict && $sValue!==$sCompareValue) || (!$this->strict && $sValue!=$sCompareValue)) {
                return 
$this->getMessage($this->Lang_Get('validate_compare_must_repeated',null,false),'msg',array('compare_field'=>$sCompareLabel));
            }
            break;
        case 
'!=':
            if((
$this->strict && $sValue===$sCompareValue) || (!$this->strict && $sValue==$sCompareValue)) {
                return 
$this->getMessage($this->Lang_Get('validate_compare_must_not_equal',null,false),'msg',array('compare_field'=>$sCompareLabel,'compare_value'=>htmlspecialchars($sCompareValue)));
            }
            break;
        case 
'>':
            if(
$sValue<=$sCompareValue) {
                return 
$this->getMessage($this->Lang_Get('validate_compare_must_greater',null,false),'msg',array('compare_field'=>$sCompareLabel,'compare_value'=>htmlspecialchars($sCompareValue)));
            }
            break;
        case 
'>=':
            if(
$sValue<$sCompareValue) {
                return 
$this->getMessage($this->Lang_Get('validate_compare_must_greater_equal',null,false),'msg',array('compare_field'=>$sCompareLabel,'compare_value'=>htmlspecialchars($sCompareValue)));
            }
            break;
        case 
'<':
            if(
$sValue>=$sCompareValue) {
                return 
$this->getMessage($this->Lang_Get('validate_compare_must_less',null,false),'msg',array('compare_field'=>$sCompareLabel,'compare_value'=>htmlspecialchars($sCompareValue)));
            }
            break;
        case 
'<=':
            if(
$sValue>$sCompareValue) {
                return 
$this->getMessage($this->Lang_Get('validate_compare_must_less_equal',null,false),'msg',array('compare_field'=>$sCompareLabel,'compare_value'=>htmlspecialchars($sCompareValue)));
            }
            break;
        default:
            return 
$this->getMessage($this->Lang_Get('validate_compare_invalid_operator',null,false),'msg',array('operator'=>$this->operator));
    }
    return 
true;
}

Запуск валидации