2017-06-06 33 views
1

我已經使用formType(TagsType)在我的主formType(見下文)中包含的bundle中創建了一個標籤系統。 我想知道我可以如何將MyFormType中的$ options參數值發送到TagsType。

//... 

use EC\TagBundle\Form\Type\TagsType; 

class MyFormType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 


    $builder   

    //... 
     ->add('tags', TagsType::class) 
    //... 
    ; 
    } 
} 

我TagsType

//... 

use Symfony\Component\Form\Extension\Core\Type\TextType; 

class TagsType extends AbstractType 
{ 
    /** 
    * @var ObjectManager 
    */ 
    private $manager; 

    public function __construct(ObjectManager $manager) 
    { 
     $this->manager = $manager; 
    } 

    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 

     $builder 
      ->addModelTransformer(new CollectionToArrayTransformer(), true) 
      ->addModelTransformer(new TagsTransformer($this->manager), true) 
     ; 
    } 

    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefault('attr', [ 
      'class' => 'tag-input', 

     ]); 
     $resolver->setDefault('required', false); 
    } 

    public function getParent() 
    { 
     // Il retourne un TextType par défaut. 
     return TextType::class; 
    } 
} 

回答

1

我發現。只是這樣做:

->add('tags', TagsType::class, ['empty_data' => $options]) 

TagsType.php

$options = $options['empty_data'];