# CRUDlex\EntityValidator

class `EntityValidator`

  Performs validation of the field values of the given Entity.

  property `entity`

    protected Entity

    The entity to validate.

  property `definition`

    protected EntityDefinition

    The entities definition.

  `fieldTypeToRules`($field, AbstractData $data, Validator $validator)

    Builds up the validation rules for a single field according to the entity definition type.

    Parameters: | $field (string) – the field for the rules $data (AbstractData) – the data instance to use for validation $validator (Validator) – the validator to use
    Returns: | array the validation rules for the field

  `fieldConstraintsToRules`($field, AbstractData $data)

    Builds up the validation rules for a single field according to the entity definition constraints.

    Parameters: | $field (string) – the field for the rules $data (AbstractData) – the data instance to use for validation
    Returns: | array the validation rules for the field

  `buildUpRules`(AbstractData $data, Validator $validator)

    Builds up the validation rules for the entity according to its definition.

    Parameters: | $data (AbstractData) – the data instance to use for validation $validator (Validator) – the validator to use
    Returns: | array the validation rules for the entity

  `buildUpData`()

    Builds up the data to validate from the entity.

    Returns: | array a map field to raw value

  `__construct`(Entity $entity)

    Constructor.

    Parameters: | $entity (Entity) – the entity to validate

  `validate`(AbstractData $data, $expectedVersion)

    Validates the entity against the definition.

    Parameters: | $data (AbstractData) – the data access instance used for counting things $expectedVersion (integer) – the version to perform the optimistic locking check on
    Returns: | array an array with the fields “valid” and “errors”; valid provides a quick check whether the given entity passes the validation and errors is an array with all errored fields as keys and arrays as values; this field arrays contains the actual errors on the field: “boolean”, “floating”, “integer”, “dateTime” (for dates and datetime fields), “inSet”, “reference”, “required”, “unique”, “value” (only for the version field, set if the optimistic locking failed).