[英]Symfony form builder multiple rows of same type
您好,我想知道如何在 Symfony 表單構建器中創建一個表單,該表單將顯示多行相同類型。 例如,我有一組圖像:
Array:
[www.image1.com, www.image2.com, www.image3.com]
我想制作一個表單,為每個圖像顯示一個文本框字段。 圖像數量未知,可能是 1 或 30。所以我想要類似的東西:
Image 1 displayed | textbox 1
Image 2 displayed | textbox 2
Image 3 displayed | textbox 3
[Save]
在文本框中,我將為每個文件編寫標題,當我單擊保存時,每一行都應保存在數據庫中它自己的行中,如下所示:
id | name | url
------------------------------------------
1 | name from textbox 1 | www.image1.com
2 | name from textbox 2 | www.image2.com
3 | name from textbox 3 | www.image3.com
我不知道如何從我的實體創建這個表單。 表單如何創建多個文本框,但知道如何將每個文本框連接到應該輸入的正確文本。
首先,您需要定義基本實體和圖像實體之間的多對多關系。
就表單而言,您需要使用 Symfony 提供的 Collection 類型。
下面是一個例子:
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\ImageType;
// ...
$formBuilder->add('images', CollectionType::class, array(
// each entry in the array will be an "image" field
'entry_type' => ImageType::class,
// these options are passed to each "image" type
'entry_options' => array(
'attr' => array('class' => 'image-box')
),
));
當然,如果您不想創建自己的表單類型,您可以將任何內置字段類型傳遞給entry_type
。
更詳細的信息在這里: http : //symfony.com/doc/current/reference/forms/types/collection.html
如果你需要幫助制作你的圖像實體,有一個食譜配方: http : //symfony.com/doc/2.2/cookbook/doctrine/file_uploads.html即使它已經過時它仍然是相關的
希望有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.