Forms 子窗体的选项

Forms 子窗体的选项,forms,symfony-3.4,Forms,Symfony 3.4,如何为子窗体提供窗体的选项 在下面的示例中,我声明了选项“特殊”。 我想在我的子窗体中访问此选项“特殊” 我的主要表格: class DemandeType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('title', TextType::class, []);

如何为子窗体提供窗体的选项

在下面的示例中,我声明了选项“特殊”。 我想在我的子窗体中访问此选项“特殊”

我的主要表格:

class DemandeType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('title', TextType::class, []);

        $builder->add('service_agent', ServiceType::class, [
            'mapped' => false
        ]);
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'special' => true
        ]);
    }
和我的子窗体:

class ServiceType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        dump($options['special']);
        $builder->add('service', TextType::class, []);

        $builder->add('agent', TextType::class, [
            'mapped' => false
        ]);
    }
    public function configureOptions(OptionsResolver $resolver)
    {
    }
class ServiceType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        dump($options['special']); // It's OK :)
        $builder->add('service', TextType::class, []);

        $builder->add('agent', TextType::class, [
            'mapped' => false
        ]);
    }
    public function configureOptions(OptionsResolver $resolver)
    {
       $resolver->setDefaults([
            'special' => true
        ]);
    }
我回答我的问题

我必须在子窗体中声明选项“特殊”。 该字段的选项可以在主窗体中访问

就像这样:

class DemandeType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('title', TextType::class, []);

        $builder->add('service_agent', ServiceType::class, [
            'mapped' => false,
            'special' => $options['special']
        ]);
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'special' => true
        ]);
    }
在我的子窗体中:

class ServiceType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        dump($options['special']);
        $builder->add('service', TextType::class, []);

        $builder->add('agent', TextType::class, [
            'mapped' => false
        ]);
    }
    public function configureOptions(OptionsResolver $resolver)
    {
    }
class ServiceType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        dump($options['special']); // It's OK :)
        $builder->add('service', TextType::class, []);

        $builder->add('agent', TextType::class, [
            'mapped' => false
        ]);
    }
    public function configureOptions(OptionsResolver $resolver)
    {
       $resolver->setDefaults([
            'special' => true
        ]);
    }