W3cubDocs

/Symfony 2.7

Symfony\Component\Form\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.

Details

public __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

public string __toString()

Returns all iterated error messages as string.

Return Value

string The iterated error messages

public FormInterface getForm()

Returns the iterated form.

Return Value

FormInterface The form whose errors are iterated by this object.

public FormError|FormErrorIterator current()

Returns the current element of the iterator.

Return Value

FormError|FormErrorIterator An error or an iterator containing nested errors.

public next()

Advances the iterator to the next position.

public int key()

Returns the current position of the iterator.

Return Value

int The 0-indexed position.

public bool valid()

Returns whether the iterator's position is valid.

Return Value

bool Whether the iterator is valid.

public 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.

public bool offsetExists(int $position)

Returns whether a position exists in the iterator.

Parameters

int $position The position

Return Value

bool Whether that position exists

public 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

public offsetSet($position, $value)

Unsupported method.

Parameters

$position
$value

Exceptions

BadMethodCallException

public offsetUnset($position)

Unsupported method.

Parameters

$position

Exceptions

BadMethodCallException

public 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

public getChildren()

Alias of {@link current()}.

public 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

public seek(int $position)

Sets the position of the iterator.

Parameters

int $position The new position

Exceptions

OutOfBoundsException If the position is invalid

© 2004–2016 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.7/Symfony/Component/Form/FormErrorIterator.html