具有实体类型字段和多个实体的symfony表单
我有两个具有某些属性的实体:具有实体类型字段和多个实体的symfony表单,symfony,entity,choice,Symfony,Entity,Choice,我有两个具有某些属性的实体: 类别 类别名称 类别说明 子类别 子类别名称 子类别描述 类别ID(多通关系) 子类别实体中存在多个子类别关系,即多个子类别可以连接到一个类别 我想构建一个包含所有子类别下拉列表的表单,但我想显示类别和子类别的名称,列表如下所示: 类别1-子类别1 类别1-子类别2 类别1-子类别3 类别2-子类别1 类别2-子类别2 类别2-子类别3 等等 我正在考虑在subcategory类中创建一个getter,该getter将返回类别名称和子类别名称的串联,类似
- 类别名称
- 类别说明
- 子类别名称
- 子类别描述
- 类别ID(多通关系)
- 类别1-子类别1
- 类别1-子类别2
- 类别1-子类别3
- 类别2-子类别1
- 类别2-子类别2
- 类别2-子类别3
- 等等
JM我通过如下方式构建表单来实现这一点:
$builder
->add('subcategoryName', EntityType::class, array(
'class' => 'AppBundle:subcategory',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->addSelect('t')
->join('u.category', 't' )
->orderBy('t.category', 'ASC')
->addOrderBy('u.subcategory', 'ASC');
},
'choice_label' => function($subcategoryname){
return $categoryname->getcategory()->getcategoryname() . " - " . $subcategoryname->getsubcategoryName();
},
'multiple' => false,
'expanded' => false,
))
我只是在选择标签选项上挣扎了一下
/JM我通过如下方式构建表单来实现这一点:
$builder
->add('subcategoryName', EntityType::class, array(
'class' => 'AppBundle:subcategory',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->addSelect('t')
->join('u.category', 't' )
->orderBy('t.category', 'ASC')
->addOrderBy('u.subcategory', 'ASC');
},
'choice_label' => function($subcategoryname){
return $categoryname->getcategory()->getcategoryname() . " - " . $subcategoryname->getsubcategoryName();
},
'multiple' => false,
'expanded' => false,
))
我只是在选择标签选项上挣扎了一下
/JM您可以使用此方法,这一点很清楚。当您有IdCategory of Subcategory表时,您也可以访问fields Category表
->add('idCategory', EntityType::class,array(
'data' => $options[0]['idCategory'],
'class' => 'AppBundle:subcategory',
'choice_label' => function (subcategory $subcategory) {
return $subcategory->getName() . '-' . $subcategory->getCategoryID()->getName().'-'.$subcategory->getCategoryID()->getDescription();
},
'attr' => array(
'label' => 'Category ',
'class' => 'form-control'
)
))
很明显,您可以使用此方法。当您有IdCategory of Subcategory表时,您也可以访问fields Category表
->add('idCategory', EntityType::class,array(
'data' => $options[0]['idCategory'],
'class' => 'AppBundle:subcategory',
'choice_label' => function (subcategory $subcategory) {
return $subcategory->getName() . '-' . $subcategory->getCategoryID()->getName().'-'.$subcategory->getCategoryID()->getDescription();
},
'attr' => array(
'label' => 'Category ',
'class' => 'form-control'
)
))