为每个产品字段添加一个子字段-Symfony表单

问题描述

我正在尝试使用Symfony 4.4表单构建订购功能

到目前为止,我有这个

class OrderProductForm extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder,array $options)
    {
        $builder
            ->add('customer',EntityType::class,[
                'class' => 'App\Entity\Customers','choice_label' => 'name','label' =>'order_form.name'
            ])
            ->add('products',CollectionType::class,[
                'entry_type' => ProductQuantityType::class,'label' => '',])
            ->getForm();

    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'App\Entity\Order',));
    }
}

class ProductQuantityType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder,array $options)
    {
        $builder
            ->add('products',[
                'class' => 'App\Entity\Products','expanded' => true,'multiple' => true,'label' =>''
            ])
            ->add('qty',IntegerType::class,[
                'label' =>'order_form.qty'
            ])
            ->getForm();

    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => null,));
    }

}

因为没有数据,所以不会呈现“产品数量”。 Symfony手册未说明如何执行... CollectionType

我真正想要的是为每种产品添加一个数量字段,同时添加任意数量的产品。

这是教义结构

仅包含相关代码

class Order
{
   /**
     * @ORM\ManyToOne(targetEntity=Customers::class,inversedBy="orders")
     * @ORM\JoinColumn(nullable=false)
     */
    private $customer;
}
class Customers
{
   /**
     * @ORM\OnetoMany(targetEntity=Order::class,mappedBy="customer",orphanRemoval=true)
     */
    private $orders;
}

是否有任何想法可以推动我前进? 谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)