Symfony-嵌套形式的检索未映射字段

时间:2020-03-24 10:17:00

标签: php symfony formbuilder

我有一个基于实体的Symfony类型property

ItemType

以下哪种形式用作CollectionType:

class IpQuoteItemsType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('itemName', TextType::class, [
                'label' => 'Produktname'
            ])
            ...
            ->add('specialDiscount', PercentType::class, [
                'required' => false,
                'label' => 'Sonderrabatt',
                'mapped' => false,
                'attr' => [
                    'placeholder' => 'Sonderrabatt 0,00 %'
                ]
            ])
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => IpQuoteItems::class
        ));
    }

}

在任何情况下,我都不会收到未映射的字段class IpQuotesType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { ... $builder->add('products', CollectionType::class, [ 'entry_type' => IpQuoteItemsType::class, 'data' => $items ]); } } 。它在specialDiscount的PRE_SUBMIT事件中仍然可用,但是在最终形式ItemsType中找不到。

是否可以以嵌套形式求和未映射的数据?

1 个答案:

答案 0 :(得分:2)

您可以在控制器中获得未映射的字段,如下所示:

$form->get('nestedEntity')->get('fieldName')->getData()

我不使用集合进行测试,但是可以在OneToOne关系中使用customType。

希望获得帮助。