Я рекомендую вам прочитать эту статью https://symfony.com/doc/current/validation.html
Если проверка не пройдена, непустой список ошибок (класс ConstraintViolationList ) возвращается.
Таким образом, вы можете получить свой список следующим образом:
if ($violations->count() > 0) {
$formatedViolationList = [];
for ($i = 0; $i < $violations->count(); $i++) {
$violation = $violations->get($i);
$formatedViolationList[] = array($violation->getPropertyPath() => $violation->getMessage());
}
}
Пара объяснений. Мы используем методы из нарушения api count()
или получаем ряд нарушений, а после цикла for мы используем get($i)
для получения каждого нарушения по индексу. После того, как мы используем getPropertyPath()
для получения пути (имя вашей собственности) и getMessage()
для получения сообщения.
Непосредственные дочерние элементы одного XElement доступны путем вызова Element()
или Elements()
функции. Используйте перегрузки с именем для доступа к определенным элементам, или без получить доступ ко всем дочерним элементам.
существуют также похожие методы как Attribute()
и Attributes()
, что Вы могли бы найти полезным.
XElement. Узлы () должны получить Вас, что Вы хотите.
, Если Вы просто хотите дочерние узлы XElement затем, Вы, возможно, должны были бы ограничить его (в зависимости от Вашего XML) с:
XElement.Nodes().OfType<XElement>()