我有一个Symfony表单,其中我有一个省的字段,将其转换为Select2.我想允许用户也允许新值.
->add('province', 'entity', array(
'class' => 'PNC\GeneralBundle\Entity\State',
'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),如果它不存在你将获取状态,你创建一个新的实体对象.确保级联正确,以便新状态将与用户配置文件一起保留.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。