0
我有以下的JSON字符串:的Symfony:提交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提交標記名稱的列表並設置相應標籤的entites列表給用戶? User
和Tag
entites有Many-to-Many
的關係。問題是:首先我需要檢查Tag
實體是否存在,如果是,請將該標籤添加到用戶,如果不是創建新標籤並將其添加到用戶。我如何獲得當前用戶addEventListener