我是 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,
]);
- 1 回答
- 0 关注
- 72 浏览
添加回答
举报
0/150
提交
取消