dongpu2694 2016-08-15 10:31
浏览 43

Symfony:提交Json字符串

I have following Json string:

  {
    "firstName":"Jane",
    "tagList": ["chess", "tennis"]
  }

And this is my UserType

     public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('email', EmailType::class)
        ->add('firstName')
        ->add('lastName')
        ->add('aboutMe')
        ->add('password')
        ->add('tagList', EntityType::class)
        ->add('agreeToContact')
        ->add('useMyLocation')
        ->add('pushNotifications')
        ->add('emailNotifications')
        ->add('inAppAlerts')
        ->add('addRequestIntoNatCal')
    ;

    $builder->addEventListener(FormEvents::PRE_SUBMIT, function(FormEvent $event) {
        $form = $event->getForm();

        $tagList = $form["tagList"]->getData();

        foreach ($tagList as $tag){
            $testTag = $this->em->getRepository('CoreBundle:Tag')->findOneBy([
                'name' => $tag
            ]);

            if ($testTag != null)
            {
                $user->addTag($testTag);
            }
            else
            {
                $newTag = new Tag();
                $newTag->setName($tag);
                $this->em->persist($newTag);
                $user->addTag($newTag);
            }
        }
    });
}

How can I submit list of tag names in Json and set correspondent Tag entites list to User? User and Tag entites have Many-to-Many relationship. Problem is: first I need to check if Tag entity exists, if yes add that tag to user, if not create new one and add it to user. How can I get current user in addEventListener

  • 写回答

1条回答 默认 最新

  • doukang7486 2016-08-15 13:39
    关注

    Use an eventSubscriber instead. Register it as a service, injecting token_storgage into it's constructor

    评论

报告相同问题?

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集