【问题标题】:Symfony: submit Json string to formSymfony:提交 Json 字符串以形成
【发布时间】:2016-12-21 13:29:02
【问题描述】:

我有以下 Json 字符串:

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

这是我的用户类型

     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);
            }
        }
    });
}

如何在 Json 中提交标签名称列表并将对应的标签实体列表设置为用户? UserTag 实体具有 Many-to-Many 关系。问题是:首先我需要检查Tag 实体是否存在,如果是,则将该标签添加到用户,如果不创建新标签并将其添加到用户。如何获取addEventListener中的当前用户

【问题讨论】:

    标签: php json symfony


    【解决方案1】:

    改为使用 eventSubscriber。 将其注册为服务,将 token_sorgage 注入到它的构造函数中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-16
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 2015-06-06
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多