FormErrorIterator
class FormErrorIterator implements RecursiveIterator, SeekableIterator, ArrayAccess, Countable
Итерирует по ошибкам формы.
Этот класс по желанию поддерживает рекурсивную итерацию. Для рекурсивной итерации установите аргумент конструктора $deep в значение true. Теперь каждый элемент, возвращаемый итератором, является либо экземпляром {@link FormError}, либо {@link FormErrorIterator}, если ошибки принадлежат подформе.
Вы также можете обернуть итератор в {@link \RecursiveIteratorIterator}, чтобы преобразовать рекурсивную структуру в плоский список ошибок.
Константы
| INDENTATION | Префикс, используемый для отступа вложенных сообщений об ошибках. |
Методы
| __construct(FormInterface $form, array $errors) Создаёт новый итератор. | ||
| string | __toString() Возвращает все проитерированные сообщения об ошибках в виде строки. | |
| FormInterface | getForm() Возвращает итерируемую форму. | |
| FormError|FormErrorIterator | current() Возвращает текущий элемент итератора. | |
| next() Перемещает итератор к следующей позиции. | ||
| int | key() Возвращает текущую позицию итератора. | |
| bool | valid() Возвращает, является ли позиция итератора действительной. | |
| rewind() Устанавливает позицию итератора в начало. | ||
| bool | offsetExists(int $position) Возвращает, существует ли позиция в итераторе. | |
| FormError|FormErrorIterator | offsetGet(int $position) Возвращает элемент по позиции в итераторе. | |
| offsetSet($position, $value) Метод не поддерживается. | ||
| offsetUnset($position) Метод не поддерживается. | ||
| bool | hasChildren() Возвращает, можно ли выполнить рекурсию по текущему элементу итератора. | |
| getChildren() Псевдоним для {@link current()}. | ||
| int | count() Возвращает количество элементов в итераторе. | |
| seek(int $position) Устанавливает позицию итератора. |
Подробности
__construct(FormInterface $form, array $errors)
Создаёт новый итератор.
Параметры
| FormInterface | $form | Форма с ошибками |
| array | $errors | Ошибки формы |
Исключения
| InvalidArgumentException | Если ошибки невалидны |
string __toString()
Возвращает все итерируемые сообщения об ошибках в виде строки.
Значение возврата
| string | Итерируемые сообщения об ошибках |
FormInterface getForm()
Возвращает итерируемую форму.
Значение возврата
| FormInterface | Форма, ошибки которой итерирует этот объект. |
FormError|FormErrorIterator current()
Возвращает текущий элемент итератора.
Значение возврата
| FormError|FormErrorIterator | Ошибка или итератор, содержащий вложенные ошибки. |
next()
Перемещает итератор к следующей позиции.
int key()
Возвращает текущую позицию итератора.
Значение возврата
| int | Позиция с индексом 0. |
bool valid()
Возвращает, является ли позиция итератора валидной.
Значение возврата
| bool | Является ли итератор валидным. |
rewind()
Устанавливает позицию итератора в начало.
Этот метод обнаруживает, если ошибки были добавлены в форму после создания итератора.
bool offsetExists(int $position)
Возвращает, существует ли позиция в итераторе.
Параметры
| int | $position | Позиция |
Значение возврата
| bool | Существует ли эта позиция |
FormError|FormErrorIterator offsetGet(int $position)
Возвращает элемент по позиции в итераторе.
Параметры
| int | $position | Позиция |
Значение возврата
| FormError|FormErrorIterator | Элемент по заданной позиции |
Исключения
| OutOfBoundsException | Если заданной позиции не существует |
offsetSet($position, $value)
Метод не поддерживается.
Параметры
| $position | ||
| $value |
Исключения
| BadMethodCallException |
offsetUnset($position)
Метод не поддерживается.
Параметры
| $position |
Исключения
| BadMethodCallException |
bool hasChildren()
Возвращает, можно ли рекурсивно войти в текущий элемент итератора.
Значение возврата
| bool | Является ли текущий элемент экземпляром этого класса |
getChildren()
Псевдоним {@link current()}.
int count()
Возвращает количество элементов в итераторе.
Обратите внимание, что это не общее количество ошибок, если параметр конструктора $deep был установлен в значение true! В этом случае следует обернуть итератор в {@link \RecursiveIteratorIterator} со стандартным режимом {@link \RecursiveIteratorIterator::LEAVES_ONLY} и посчитать результат.
$iterator = new \RecursiveIteratorIterator($form->getErrors(true));
$count = count(iterator_to_array($iterator));
В качестве альтернативы, установите также аргумент конструктора $flatten в значение true.
$count = count($form->getErrors(true, true));
Возвращаемое значение
| int | Количество итерированных элементов |
seek(int $position)
Устанавливает позицию итератора.
Параметры
| int | $position | Новая позиция |
Исключения
| OutOfBoundsException | Если позиция некорректна |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/Form/FormErrorIterator.html