1

我想知道是否有一种方法可以在 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 ) }}而不是每次都创建一个新的单选组。

我到处找,但什么也没找到。有办法吗?

4

0 回答 0