Symfony PropertyAccessor setValue дает NoSuchPropertyException для объектов - PullRequest
0 голосов
/ 08 мая 2019

В моем коде я хочу извлечь сообщения и поля из нарушений ограничений в массивы.PropertyAccess имеет setValue для этого.Он работает с ключами массива, но не работает с атрибутами объекта.

Использование setValue для атрибутов объекта приводит к

fatal error: Uncaught Symfony\Component\PropertyAccess\Exception
\NoSuchPropertyException: Cannot write property "first_name" to an array. 
Maybe you should write the property path as "[first_name]" instead?

Насколько я понимаю, PropertyAccess унифицирует доступ к обоим массивам иобъекты.Почему тогда setValue не работает с атрибутами объекта?

Вот фрагмент кода:

$user = new User('', 'Novak', 'pnovak@examplecom');

$validator =   Validation::createValidatorBuilder()->addXmlMapping('validation.xml')->getValidator();
$violations = $validator->validate($user);

$accessor = PropertyAccess::createPropertyAccessor();

$messages = [];

if (0 === count($violations)) {

    echo 'validation passed';
} else {

    foreach ($violations as $violation) {


        // $messages[$violation->getPropertyPath()] = $violation->getMessage();

        $accessor->setValue($messages,
            $violation->getPropertyPath(),
            $violation->getMessage());
    }

    dump($messages);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...