首页 > 解决方案 > 如何将变量从表单子传递给父symfony?

问题描述

我正面临 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",
});

提前致谢 :)

标签: symfonytwig

解决方案


解决方案很简单:D

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

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

推荐阅读