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/2.7/Symfony/Component/Form/FormErrorIterator.html