为了账号安全,请及时绑定邮箱和手机立即绑定

制作一个包含两个单独值的表单类型,您可以使用 symfony 4 多次添加

制作一个包含两个单独值的表单类型,您可以使用 symfony 4 多次添加

PHP
四季花海 2022-12-30 17:13:05
我是 Symfony 的新手,我想使用 symfony 4 做一些事情。为了简化它,假设我有一个购物篮,我可以在其中添加或删除文章并选择我选择的每篇文章的数量。所以在学说方面我有三个实体:class Basket {   protected $id;   protected $name;}class Article{   protected $id;   protected $name;}class Buying {   //ManyToOne   protected $basket;   //ManyToOne   protected $article;   protected $count;}我已经通过手动制作 HTML 并使用一些讨厌的 JS 代码来完成此表单,但现在我想使用 Symfony 4 的表单来制作此表单。我认为最好的方法是为该“购买”实体创建我自己的表单类型,该实体将有两个字段,其中一个是包含每篇文章的 Select,另一个是 $count 值,然后有可能添加尽可能多的“购买”,但我想不出这样做的方法,而且文档似乎没有涵盖这种情况。
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

为此,您需要几种表单类型,并且您可能需要稍微调整一下您的实体。这是它的要点:


首先,您需要为每件购买的商品及其数量配备一个。这EntityType将为您select提供所有文章,正是您正在寻找的内容。


// BuyingType.php

$builder->add('article', EntityType::class, ['class' => Article::class]);

$builder->add('count', NumberType::class, [

    'constraints' => [

        new Count(['min' => 1]),

      ],

]);

第二个将CollectionType代表整个篮子。


// BasketType.php

$builder->add('basket', CollectionType::class, [

    'entry_type' => BuyingType::class,

    'allow_add' => true,

    'allow_delete' => true,

]);


查看完整回答
反对 回复 2022-12-30
  • 1 回答
  • 0 关注
  • 53 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信