Symfony嵌入式订购表地图数据返回

问题描述 投票:1回答:1

我正在用Symfony 4.5中的orderItems(集合)之类的嵌入式数据创建订单表单。我的OrderType看起来像这样:

<?php
class OrderType extends BaseOrderType
{
    /**
     * {@inheritDoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder->add('note', TextareaType::class, array(
            'label' => 'order.note_company',
            'required' => false,
        ));

        $builder->add('orderItems', CollectionType::class, array(
            'entry_type' => OrderItemType::class,
            'entry_options' => array(
                'label' => false
            ),
            'allow_add' => true,
            'prototype_data' => new OrderItem()
        ));
    }

    /**
     * {@inheritDoc}
     */
    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults(array(
            'data_class' => Order::class,
            'translation_domain' => 'forms',
        ));
    }
}

对于我的嵌入式表单OrderItemType

<?php
class OrderItemType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder->add('amount', IntegerType::class, array(
            'label' => 'order.amount',
            'attr' => array(
                'min' => 0,
            ),
            'data' => 1,
            'required' => false,
        ));

        $builder->add('configureProductType', ConfigureProductType::class, array(
            'label' => false,
            'show_submit_btn' => false,
            'required' => false,
        ));
    }

    /**
     * {@inheritDoc}
     */
    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults(array(
            'data_class' => OrderItem::class,
            'translation_domain' => 'forms',
            'allow_extra_fields' => true
        ));
    }
}

[OrderItemType包含一个字段configureProductType,它也是具有可重用字段(例如产品,价格等)的表单。但是如何将该字段configureProductType映射回原始OrderItemType。

symfony collections symfony-forms
1个回答
0
投票

您正在寻找inherit_data option。 symfony文档对此进行了详细说明,但是您需要为嵌套表单类型将inherit_data选项设置为inherit_data

true
© www.soinside.com 2019 - 2024. All rights reserved.