Symfony 3 : Sending the $options argument values from formType to underFormType

偶尔善良 提交于 2019-12-11 08:03:58

问题


I've created a tag system in a bundle using a formType (TagsType) which I include in my main formType (See below). I'd like to know how I can send the $options argument values from MyFormType to TagsType.

//...

use EC\TagBundle\Form\Type\TagsType;

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


    $builder        

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

My 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:


I found. Just do this :

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

TagsType.php

$options = $options['empty_data'];


来源:https://stackoverflow.com/questions/44390433/symfony-3-sending-the-options-argument-values-from-formtype-to-underformtype

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!