Как десерилизовать массив, который приходит из формы Symfony 4?

Есть класс формы, отправляю аяксом и массив данных выглядят следующим образом
name_form[fields]: value
Хочу это все десериализовать в объект
if ($request->isXmlHttpRequest()) {
            $objectNormalizer = new ObjectNormalizer();
            $normalizers = [$objectNormalizer];
            $encoders = [new JsonEncoder()];
            $serializer = new Serializer($normalizers, $encoders);
            $data = $request->getContent();
            $result = $serializer->deserialize($data, SiteCreateDto::class, 'json');
            var_dump($result); exit;
        }


Но объект естественно не заполняется.
Как решить? Или что прочитать?

P.S. Также необходимо проигнорировать некоторые поля из формы
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Не понял, а почему так странно создаете сериалайзер?
Во-первых,ObjectNormalizer имеет несколько больше зависимостей для полноценной его работы
Во-вторых, правильней все-таки его получать через DI.
public function submitAction(SerializerInterface $serializer, Request $request)
{
    if ($request->isXmlHttpRequest()) {
        $data = $request->getContent();
        $result = $serializer->deserialize($data, SiteCreateDto::class, 'json');
        var_dump($result); exit;
    }
}


Если из коробки ObjectNormalizer не помог, то надо будет написать свой: https://symfony.com/doc/current/serializer/custom_...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 90 000 до 150 000 руб.
iConText Москва
от 120 000 руб.
Homeapp Москва
от 160 000 до 180 000 руб.
20 июн. 2019, в 22:17
20000 руб./за проект
20 июн. 2019, в 21:15
1000 руб./в час
20 июн. 2019, в 21:09
30000 руб./за проект