src/Templates/Validator/ArrayTuple.phptpl
is_array($value) && (function (&$items) use (&$invalidTuples, $modelData) {
{% if generatorConfiguration.collectErrors() %}
$originalErrorRegistry = $this->_errorRegistry;
{% endif %}
$index = 0;
{% foreach tupleProperties as tuple %}
// ---------------- validate a single tuple of the array ------------------
try {
if ($index === count($items)) {
return !empty($invalidTuples);
}
{% if generatorConfiguration.collectErrors() %}
$this->_errorRegistry = new {{ viewHelper.getSimpleClassName(generatorConfiguration.getErrorRegistryClass()) }}();
{% endif %}
$value = &$items[$index++];
{{ viewHelper.resolvePropertyDecorator(tuple) }}
{% foreach tuple.getOrderedValidators() as validator %}
{{ viewHelper.renderValidator(validator, schema) }}
{% endforeach %}
{% if generatorConfiguration.collectErrors() %}
if ($this->_errorRegistry->getErrors()) {
$invalidTuples[$index] = $this->_errorRegistry->getErrors();
}
{% endif %}
} catch (\Exception $e) {
// collect all errors concerning invalid tuples
isset($invalidTuples[$index])
? $invalidTuples[$index][] = $e
: $invalidTuples[$index] = [$e];
}
{% endforeach %}
{% if generatorConfiguration.collectErrors() %}
$this->_errorRegistry = $originalErrorRegistry;
{% endif %}
return !empty($invalidTuples);
})($value)