Проблема с запросом POST в Symfony 3.4

Я отправляю следующие данные от почтальона [POST] на localhost:8000

{
"UserName" : "JohnDoe",
"Password": "JohnDoe123",
"Email": "[email protected]",
"FirstName": "John",
"LastName": "Doe"
}

Это форма: userForm.php

class userForm extends AbstractType {

public function buildForm(FormBuilderInterface $builder, array $options) {

    $builder
        ->add('UserName')
        ->add('Password')
        ->add('Email')
        ->add('FirstName')
        ->add('LastName')
    ;
}


public function configureOptions(OptionsResolver $optionsResolver) {

    $optionsResolver->setDefaults(
 [

        array(

            'data_class' => user::class,
        )
  ]
    );
    }
 }

Контроллер: PostController.php

    public function createPostAction(Request $request) {

    $data = $request->getContent();


    $user = $this->get('jms_serializer')
    ->deserialize($data, 'AppBundle\Entity\user' ,'json');
    var_dump($user);
    exit();
    $user = new user();

    $form = $this->createForm(userForm::class, $user);

    $form->handleRequest($request);


        $em = $this->getDoctrine()->getManager();
        $em->persist($user);
        $em->flush();

    $errors = $form->getErrors();
    $response = array(
        'message' => 'success',
        'errors' => null,
    );

    return new JsonResponse($response, 200);
}

Это то, что я получил в Почтальоне

object(AppBundle\Entity\user)#2175 (6) { ["id":"AppBundle\Entity\user":private]=> NULL ["userName":"AppBundle\Entity\user":private]=> NULL ["пароль":"AppBundle\Entity\user":private]=> NULL ["email":"AppBundle\Entity\user":private]=> NULL ["firstName":"AppBundle\Entity\user":private ]=> NULL ["lastName":"AppBundle\Entity\user":private]=> NULL }

Так как я новичок в этом и я не знаю, что делать.


person Community    schedule 23.02.2018    source источник
comment
Это потому, что вы отправляете JSON в теле, но запросы POST работают немного по-другому. Вам придется искать и читать самостоятельно, потому что здесь было бы МНОГО, чтобы написать ответ.   -  person Alex Karshin    schedule 23.02.2018
comment
Компонент формы на самом деле ожидает, что имена элементов будут такими: form[Username], form[Password] и т. д. Просто одна из этих забавных особенностей. И да, json может быть проблемой: stackoverflow.com/questions/34619020/   -  person Cerad    schedule 23.02.2018
comment
@AlexKarshin, я пытался отправить из угловой формы, но безуспешно...   -  person    schedule 23.02.2018
comment
попробуйте сбросить данные сразу после $data = $request->getContent();, чтобы увидеть, что возвращается с помощью метода dump($data). Также я не знаю, нормально ли это, но почтальон отображает имя пользователя, пароль и т. Д. Сначала с крошечной буквой вместо того, чтобы отображать что-то вроде имени пользователя, пароля и т. Д.   -  person Vulkhan    schedule 24.02.2018
comment
Та же проблема. Кажется, форма не улавливает значение.   -  person    schedule 25.02.2018