我可以';I don’我不提交我的表格


I can't submit my form

我想制作多步骤表单,所以我在控制器中创建了一个类表单和一个函数,我的问题是我无法提交我的表单

我尝试一切皆是:

  • $formTransfertFunds->isValid()
  • $formTransfertFunds->isSubmitted()
  • $this->get('request')->isMethod('post')

    public function indexTransfertFondsCcpAction()
    {
        $request = $this->get('request');
        $transfertFonds = new TransfertFonds();
        $step = 1;
        $formTransfertFonds = $this->createForm(new TransfertFondsType($step), $transfertFonds );
        $formTransfertFonds->handleRequest($request);
        if ($formTransfertFonds->isSubmitted())
        if ( $this->get('request')->isMethod('post') ) {
            echo "ok"; }
        }
        return $this->render('@EgovPoste/Ccp/indexTransfertFondsAccountCcp.html.twig',
            array('formTransfertFonds' => $formTransfertFonds->createView(),
                  'step' => $step
            )
        );
    }

我创建了一个变量$step,用于将其传递到我的表单

class TransfertFondsType extends AbstractType
{
    protected $step;
    public function __construct($step) {$this->step = $step;}
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        switch ($this->step) {
            case 1:
                $builder
                    ->add('toNumCompte')
                    ->add('montant', 'money')
                    ->add('Suivant', 'submit')
                    ->getForm();
                break;
            case 2:
                $builder
                    ->add(
                        'typeTransfert',
                        'choice',
                        array(
                            'choices' => array(
                                'maintenant' => 'Juste maintenant',
                                'unique' => 'Unique',
                                'permanent' => 'Permanent',
                            ),
                            'expanded' => true,
                            'multiple' => false,
                        )
                    )
                    ->add(
                        'optionEmail',
                        'checkbox',
                        array(
                            'label' => 'Recevoir une copie par e-mail de ma confirmation de virement',
                            'data' => false,
                            'required' => false,
                        )
                    )
                    ->add('Retour', 'submit')
                    ->add('Suivant', 'submit');
                break;
            case 3:
                break;
            case 4:
                break;
        }
    }
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(
            array(
                'data_class' => 'Egov'CoreBundle'Entity'TransfertFonds',
            )
        );
    }
    public function getName() { return 'TransfertFondsType';}
}

您可以尝试:

if ($formTransfertFonds->isSubmitted() && $formTransfertFonds->isValid()) {
        //Do what you want
    }

要在表单中传递变量,请使用:

$this->createForm(new TransfertFondsType($step), $transfertFonds, array('attr' => array('step' => $step );

并与一起使用

$options['attr']['step']