0

I found this: "How to process nested json with FOSRestBundle and Symfony forms" but the acepted reply was: "making an unmapped form and binding data manually using a form event"

In play, you can write your own data binder but for most formats(xml, json, ...), you can take the data automatically based on the Content-Type http header (the @BodyParser.Of(BodyParser.Json.class) is not mandatory here to get it working), there are some well know data binders available(from Spring or wherever). A product can have a list of items, and even so, you can bind the request body to a form automatically.

PHP/Symfony no learn yet how to solve this issue? If I create an API REST in php + symfonmy I need to write some kind of "parser" like this? Can some one share a link to a post or an example with a solution to this?

PD: I use the play example because I am not an experienced web developer(less in PHP), so take this like my mcve.

Thanks in advance.

2 Answers2

1

To solve this issue be sure all field on the form that have a relation are defined explicit:

$builder->add('field_simple')
        ->add('field_entity')
...

The code above will not work because the field 'field_entity' will be take like another simple field, you will have to define all the fields of entities or at lest the fields of interest, example:

$builder->add('field_simple')
        ->add('field_entity', EntityType::class, array(
            'class' => CustomEntity::class,
            ...
        ))
...

Best Regards...

ejromero
  • 48
  • 6
0

By my experience you can achieve this by two ways:

  1. Deserializing the JSON into a entity
  2. Handling the request with a form as you suggest

In my projects I always do it with the second method because it to much easy to update the entities from a database loaded entity and handle the validation of your data.

I let you a link that is in a old version but remain more or less the same knp university

I hope this can help you

Jose M. González
  • 12,590
  • 1
  • 13
  • 9
  • I tried this, but not work when I have a [nested json](https://stackoverflow.com/questions/34690274/how-to-process-nested-json-with-fosrestbundle-and-symfony-forms) :(. – Alvaro Denis Acosta Mar 23 '18 at 16:12
  • I suppose that was related entities, you can achieve it with the collection type, I can do with this kind of forms, https://symfony.com/doc/current/reference/forms/types/collection.html – Jose M. González Mar 23 '18 at 16:19