2016-03-12 90 views
2

我想添加許多隱藏文件以形成像數組一樣的名稱的構建器。例如:Symfony2使用一個名稱添加到許多字段中

<input type="hidden" name="test[]"> 
<input type="hidden" name="test[]"> 
<input type="hidden" name="test[]"> 
<input type="hidden" name="test[]"> 

我該怎麼做?謝謝。

$builder->addEventListener(FormEvents::PRE_SET_DATA, function(FormEvent $event) { 
       $form = $event->getForm(); 

       $photos = $event->getData()->getPhotos(); 

       if ($photos) { 
        foreach ($photos as $photo) { 
         $form->add('uploadedPhoto', CollectionType::class, array(
          'entry_type' => HiddenType::class, 
    //      'data' => $photo->getId(), 
          'mapped' => false, 
         )); 
        } 
       } 
      }); 

回答

2

您需要使用collection類型:

use Symfony\Component\Form\Extension\Core\Type\CollectionType; 
use Symfony\Component\Form\Extension\Core\Type\HiddenType; 

$builder->add('foo', CollectionType::class , array('entry_type' => HiddenType::class)); 

我假設你要列出爲隱藏下從數據源photos屬性的所有元素。

$builder->add('photos', CollectionType::class , array(
    'entry_type' => HiddenType::class, 
    'mapped' => false 
)); 

瞭解更多關於此字段類型:http://symfony.com/doc/current/reference/forms/types/collection.html#entry-type

+0

感謝。但是我使用這個變體,我沒有得到結果。我添加代碼來提問。 – trauma

+0

檢查我的更新 –

相關問題