代码之家  ›  专栏  ›  技术社区  ›  Loctarogar

如何在Symfony中保存邮递员的数据?

  •  0
  • Loctarogar  · 技术社区  · 6 年前

    我尝试从邮递员发送数据到这个函数

        public function new(Request $request): Response
        {
    
          $tag = new Tag();
          $form = $this->createForm(TagType::class, $tag);
          $form->submit($request->request->all());
    
          if ($form->isValid()) {
              $entityManager = $this->getDoctrine()->getManager();
              $entityManager->persist($tag);
              $entityManager->flush();
              $message = "Tag was successfully added";
              return new JsonResponse(array("message: $message"));
          }
          $errors = $form->getErrors();
          return new JsonResponse(array("message:$errors"));
    
        }
    

    如果我以“表单数据”的形式发送数据,我可以将其保存到数据库中。 但我不明白如何接受“raw”Json“application/Json”

    我只能手动从请求中获取值

    $tagTitle = $request->query->get('title');
    

    而我不能用一些FOSUserBundle等。 我只能使用jms/序列化程序。如果我需要的话。

    1 回复  |  直到 6 年前
        1
  •  1
  •   mblaettermann    6 年前

    您需要从 $request->getContent() 第一:

    public function new(Request $request): Response
    {
    
      $tag = new Tag();
      $form = $this->createForm(TagType::class, $tag);
      $form->submit(json_decode($request->getContent(), true));
    
      if ($form->isValid()) {
          $entityManager = $this->getDoctrine()->getManager();
          $entityManager->persist($tag);
          $entityManager->flush();
          $message = "Tag was successfully added";
          return new JsonResponse(array("message: $message"));
      }
      $errors = $form->getErrors();
      return new JsonResponse(array("message:$errors"));
    
    }