FormErrorIterator
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. | ||
FormErrorIterator | findByCodes(string|string[] $codes) Creates iterator for errors with specific codes. |
Details
__construct(FormInterface $form, array $errors)
Creates a new iterator.
Parameters
FormInterface | $form | The erroneous form |
array | $errors | The form errors |
Exceptions
InvalidArgumentException | If the errors are invalid |
string __toString()
Returns all iterated error messages as string.
Return Value
string | The iterated error messages |
FormInterface getForm()
Returns the iterated form.
Return Value
FormInterface | The form whose errors are iterated by this object |
FormError|FormErrorIterator current()
Returns the current element of the iterator.
Return Value
FormError|FormErrorIterator | an error or an iterator containing nested errors |
next()
Advances the iterator to the next position.
int key()
Returns the current position of the iterator.
Return Value
int | The 0-indexed position |
bool valid()
Returns whether the iterator's position is valid.
Return Value
bool | Whether the iterator 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.
Parameters
int | $position | The position |
Return Value
bool | Whether that position exists |
FormError|FormErrorIterator offsetGet(int $position)
Returns the element at a position in the iterator.
Parameters
int | $position | The position |
Return Value
FormError|FormErrorIterator | The element at the given position |
Exceptions
OutOfBoundsException | If the given position does not exist |
offsetSet($position, $value)
Unsupported method.
Parameters
$position | ||
$value |
Exceptions
BadMethodCallException |
offsetUnset($position)
Unsupported method.
Parameters
$position |
Exceptions
BadMethodCallException |
bool hasChildren()
Returns whether the current element of the iterator can be recursed into.
Return Value
bool | Whether the current element is an instance of this class |
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));
Return Value
int | The number of iterated elements |
seek(int $position)
Sets the position of the iterator.
Parameters
int | $position | The new position |
Exceptions
OutOfBoundsException | If the position is invalid |
FormErrorIterator findByCodes(string|string[] $codes)
Creates iterator for errors with specific codes.
Parameters
string|string[] | $codes | The codes to find |
Return Value
FormErrorIterator | new instance which contains only specific errors |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/4.0/Symfony/Component/Form/FormErrorIterator.html