Jquery CollectionTypes和事件侦听器Symfony 2.8
我有一个字段列表,每个字段都可以是“选择”或“单选”按钮类型 所以我有一个collectionType ProductOptions,集合的每个元素都是一个OptionGroup,结果是一个entityTypeJquery CollectionTypes和事件侦听器Symfony 2.8,jquery,ajax,symfony,symfony-forms,Jquery,Ajax,Symfony,Symfony Forms,我有一个字段列表,每个字段都可以是“选择”或“单选”按钮类型 所以我有一个collectionType ProductOptions,集合的每个元素都是一个OptionGroup,结果是一个entityType optionGroup.name:选择(optionElements) optionGroup.name:收音机(可选元件) 一个OptionGroup(entityType)的optionElements使用POST_set_数据进行设置 我现在想做的是,当第一个entityTy
- optionGroup.name:选择(optionElements)
- optionGroup.name:收音机(可选元件)
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('productOptionGroups', CollectionType::class, array(
'entry_type' => ProductOptionGroupType::class,
'label' => false,
'required' => true,
));
}
和选项组
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->addEventListener(FormEvents::POST_SET_DATA, function ($event) {
$builder = $event->getForm();
$entity = $event->getData();
$optionGroup = $entity->getOptionGroup();
$optionType = $optionGroup->getOptionType();
$elements = $entity->getOptionElements(); // or a query builder
if($optionType == OptionGroup::OPTIONGROUP_TYPE_SELECT){
$builder
->add('elements', EntityType::class, array(
'class' => 'AnaShopBundle:OptionElement',
'choices' => $elements,
'label' => $optionGroup,
'required' => true,
'property' => 'name',
'mapped' => false,
));
} elseif ($optionType == OptionGroup::OPTIONGROUP_TYPE_RADIO) {
$builder
->add('elements', EntityType::class, array(
'class' => 'AnaShopBundle:OptionElement',
'choices' => $elements,
'label' => $optionGroup,
'expanded' => true,
'required' => true,
'property' => 'name',
'mapped' => false,
));
}
});
}
你需要添加客户端代码尝试(ajax等)来编辑你的问题。我还没有客户端的ajax,因为我不知道如何解决这个问题。你需要添加客户端代码尝试(ajax等)来编辑你的问题。我还没有客户端的ajax,因为我不知道如何解决这个问题。