加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony表单Select2允许用户输入新值

发布时间:2020-12-13 22:25:00 所属栏目:PHP教程 来源:网络整理
导读:我有一个Symfony表单,其中我有一个省的字段,将其转换为Select2.我想允许用户也允许新值. -add('province','entity',array( 'class' = 'PNCGeneralBundleEntityState','property' = 'name','empty_value'='-- Select Province --','label' = ucfirst('Stat
我有一个Symfony表单,其中我有一个省的字段,将其转换为Select2.我想允许用户也允许新值.

->add('province','entity',array(
                'class' => 'PNCGeneralBundleEntityState','property' => 'name','empty_value'=>'-- Select Province --','label' => ucfirst('State / Province / Region'),'required'  => false,'attr' => array('class' => 'form-control'),'label_attr' => array('class' => 'control-label'),'mapped' => false,))

枝条

$('#user_profile_type_province').select2({
    tags: "true",});

调节器

if ($request->getMethod() == 'POST') {
 $UserProfileForm->handleRequest($request);
 $province = $UserProfileForm["province"]->getData();
 $tag = $em->getRepository('PNCGeneralBundle:State')->findOneByName($province);
 if(!$tag){
   $newState = new State();
   $newState->setName($province);
   $newState->setCountry($UserProfileForm["country"]->getData());
   $em->persist($newState);
   $em->flush();
   }
}

但是当我在省select2中输入新内容时,我的省值为null.

解决方法

它按预期工作:)你没有实体所以有null.为了使它工作,你将不得不创建一个DataTransformer( http://symfony.com/doc/current/cookbook/form/data_transformers.html),如果它不存在你将获取状态,你创建一个新的实体对象.确保级联正确,以便新状态将与用户配置文件一起保留.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读