class FormErrorIterator implements RecursiveIterator, SeekableIterator, ArrayAccess, Countable
Iterates over the errors of a form.
Optionally, this class supports recursive iteration. In order to iterate recursively, set the constructor argument $deep to true. Now each element returned by the iterator is either an instance of {@link FormError} or of {@link FormErrorIterator}, in case the errors belong to a sub-form.
You can also wrap the iterator into a {@link \RecursiveIteratorIterator} to flatten the recursive structure into a flat list of errors.
Constants
INDENTATION | The prefix used for indenting nested error messages. |
Methods
__construct(FormInterface $form, array $errors) Creates a new iterator. | ||
string | __toString() Returns all iterated error messages as string. | |
FormInterface | getForm() Returns the iterated form. | |
FormError|FormErrorIterator | current() Returns the current element of the iterator. | |
next() Advances the iterator to the next position. | ||
int | key() Returns the current position of the iterator. | |
bool | valid() Returns whether the iterator's position is valid. | |
rewind() Sets the iterator's position to the beginning. | ||
bool | offsetExists(int $position) Returns whether a position exists in the iterator. | |
FormError|FormErrorIterator | offsetGet(int $position) Returns the element at a position in the iterator. | |
offsetSet($position, $value) Unsupported method. | ||
offsetUnset($position) Unsupported method. | ||
bool | hasChildren() Returns whether the current element of the iterator can be recursed into. | |
getChildren() Alias of {@link current()}. | ||
int | count() Returns the number of elements in the iterator. | |
seek(int $position) Sets the position of the iterator. |
Details
__construct(FormInterface $form, array $errors)
Creates a new iterator.
string __toString()
Returns all iterated error messages as string.
FormInterface getForm()
Returns the iterated form.
FormError|FormErrorIterator current()
Returns the current element of the iterator.
next()
Advances the iterator to the next position.
int key()
Returns the current position of the iterator.
bool valid()
Returns whether the iterator's position is valid.
rewind()
Sets the iterator's position to the beginning.
This method detects if errors have been added to the form since the construction of the iterator.
bool offsetExists(int $position)
Returns whether a position exists in the iterator.
FormError|FormErrorIterator offsetGet(int $position)
Returns the element at a position in the iterator.
offsetSet($position, $value)
Unsupported method.
offsetUnset($position)
Unsupported method.
bool hasChildren()
Returns whether the current element of the iterator can be recursed into.
getChildren()
Alias of {@link current()}.
int count()
Returns the number of elements in the iterator.
Note that this is not the total number of errors, if the constructor parameter $deep was set to true! In that case, you should wrap the iterator into a {@link \RecursiveIteratorIterator} with the standard mode {@link \RecursiveIteratorIterator::LEAVES_ONLY} and count the result.
$iterator = new \RecursiveIteratorIterator($form->getErrors(true));
$count = count(iterator_to_array($iterator));
Alternatively, set the constructor argument $flatten to true as well.
$count = count($form->getErrors(true, true));
seek(int $position)
Sets the position of the iterator.
Please login to continue.