2017-06-06 68 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'];