我想知道是否有一种方法可以在 twig 中定义无线电字段的名称以进行分组。目前是这个:
<input type="radio"
value="6"
required="required"
name="root_companybundle_company[products]"
id="root_companybundle_company_products_6">
名称自动生成的位置。最好的办法是在 FormType 元素中定义名称。喜欢:
namespace Root\CompanyBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Doctrine\ORM\EntityRepository;
class CompanyType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('products', 'entity', array(
'class' => 'CompanyBundle:Product',
'label' => 'Produkts',
'property' => 'name',
'multiple' => true,
'expanded' => true,
'required' => true,
'groupBy' => 'groupName'
))
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Root\CompanyBundle\Entity\Company'
));
}
/**
* @return string
*/
public function getName()
{
return 'root_companybundle_company';
}
}
groupName
将是我的产品实体中的一个字段(字符串)。所以它可能看起来像这样:
<input type="radio"
value="6"
required="required"
name="root_companybundle_company_mygroupName[products]"
id="root_companybundle_company_mygroupName_products_6">
所以我可以很容易地得到我 的单选按钮,{{ form_widget( new_form.products ) }}
而不是每次都创建一个新的单选组。
我到处找,但什么也没找到。有办法吗?