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() Возвращает количество элементов в итераторе. Обратите внимание, что это не общее количество ошибок, если параметр конструктора $deep был установлен в значение true! В этом случае вам следует обернуть итератор в {@link \RecursiveIteratorIterator} со стандартным режимом {@link \RecursiveIteratorIterator::LEAVES_ONLY} и подсчитать результат. В качестве альтернативы, установите аргумент конструктора $flatten также в значение true. Значение, возвращаемое функцией
| ||
| 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.1/Symfony/Component/Form/FormErrorIterator.html