如何将变量从子表单传递给父symfony?

时间:2020-09-11 12:55:16

标签: symfony twig

我遇到了Symfony3表单的问题。

我定义了这样的第一种形式:

class MyForm1Type extends AbstractType {
      /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name', MyForm2Type::class, [
                'startDate' => 6,
            ])
        ;
    }
}

第二种形式:

class MyForm2Type extends AbstractType
{
    /**
     * @param OptionsResolver $resolver
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'startDate' => null,
            'attr' => [
                'startDate' => ?????,
            ],
        ]);
    }

    /**
     * @return string|null
     */
    public function getParent()
    {
        return DateType::class;
    }

    /**
     * @return string|null
     */
    public function getBlockPrefix()
    {
        return 'datePicker';
    }

我会在configureOptions函数中获取fieldOption值并将其添加到attr数组中,这可能吗?我需要在表单主题中使用此值来使用动态的startDate参数来实例化datePicker:

$('.input-datepicker').datepicker({
     startDate: "-{{ attr.startDate }}y",
});

预先感谢:)

1 个答案:

答案 0 :(得分:0)

解决方案很简单:D

我们只需以第一种形式添加attr属性,如下所示:

$builder
            ->add('name', MyForm2Type::class, [
                'attr' => [ startDate => 6 ],
            ])
        ;