我是 Symfony 的新手,我想使用 symfony 4 做一些事情。為了簡化它,假設(shè)我有一個購物籃,我可以在其中添加或刪除文章并選擇我選擇的每篇文章的數(shù)量。所以在學(xué)說方面我有三個實(shí)體:class Basket { protected $id; protected $name;}class Article{ protected $id; protected $name;}class Buying { //ManyToOne protected $basket; //ManyToOne protected $article; protected $count;}我已經(jīng)通過手動制作 HTML 并使用一些討厭的 JS 代碼來完成此表單,但現(xiàn)在我想使用 Symfony 4 的表單來制作此表單。我認(rèn)為最好的方法是為該“購買”實(shí)體創(chuàng)建我自己的表單類型,該實(shí)體將有兩個字段,其中一個是包含每篇文章的 Select,另一個是 $count 值,然后有可能添加盡可能多的“購買”,但我想不出這樣做的方法,而且文檔似乎沒有涵蓋這種情況。
1 回答

精慕HU
TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個贊
為此,您需要幾種表單類型,并且您可能需要稍微調(diào)整一下您的實(shí)體。這是它的要點(diǎn):
首先,您需要為每件購買的商品及其數(shù)量配備一個。這EntityType
將為您select
提供所有文章,正是您正在尋找的內(nèi)容。
// 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 關(guān)注
- 96 瀏覽
添加回答
舉報
0/150
提交
取消