Php Can';t从控制器为窗体中的操作分配路径

Php Can';t从控制器为窗体中的操作分配路径,php,forms,symfony,Php,Forms,Symfony,我正在尝试使用generateUrl从控制器向“操作”表单分配url: RegistrationController.php 路由/注册.yml services.yml RegistrationFormType.php 那么,我在哪里以及如何使用generateUrl为操作分配URL呢?您是否碰巧有关于该错误的stacktrace?因为我可以从您提供的代码中看出,$this在您的控制器中实际上引用了类“BISSAP\UserBundle\Form\Type\RegistrationFormTy

我正在尝试使用
generateUrl
从控制器向“操作”表单分配url:

RegistrationController.php

路由/注册.yml

services.yml

RegistrationFormType.php


那么,我在哪里以及如何使用
generateUrl
为操作分配URL呢?

您是否碰巧有关于该错误的stacktrace?因为我可以从您提供的代码中看出,
$this
在您的控制器中实际上引用了类“BISSAP\UserBundle\Form\Type\RegistrationFormType”,我们在RegistrationFormType类中没有看到任何
generateUrl
方法哦,对不起,我忘了保存对RegistrationFormType的更改。但是,当我试图用
$request->getMethod()显示方法send时
在Registration Controller.php中,我使用GET而不是POST。您是否碰巧有关于该错误的stacktrace?因为我可以从您提供的代码中看出,
$this
在您的控制器中实际上引用了类“BISSAP\UserBundle\Form\Type\RegistrationFormType”,我们在RegistrationFormType类中没有看到任何
generateUrl
方法哦,对不起,我忘了保存对RegistrationFormType的更改。但是,当我试图用
$request->getMethod()显示方法send时
在Registration Controller.php中,我使用GET而不是POST。
$form = $this->createForm('app_user_registration', 
                                    $entity, 
                                    array('action' => $this->generateUrl('fos_user_registration_register', 
                                            array('type' => 'agent')),
                                            'validation_groups' => 'Registration'));
fos_user_registration_register:
    pattern: /{type}
    defaults : { _controller :FOSUserBundle:Registration:register }
    requirements:
        _method: GET|POST
        type : agent|controleur|superviseur
# app/config/services.yml

services:
    bissap.form.registration:
        class: BISSAP\UserBundle\Form\Type\RegistrationFormType
        arguments: [ %fos_user.model.user.class%]
        tags:
            - { name: form.type, alias: bissap_user_registration }

    app.form.registration:
        class: BISSAP\UserBundle\Form\RegistrationType
        tags:
            - { name: form.type, alias: app_user_registration }
<?php

namespace BISSAP\UserBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class RegistrationFormType extends AbstractType
{

    private $class;

    /**
     * @param string $class The User class name
     */
    public function __construct($class)
    {
        $this->class = $class;

    }


    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('email', 'email', array('required' => false,'validation_groups' => array('registration'), 
                        'label' => 'form.email',
                        'translation_domain' => 'FOSUserBundle',
                        'attr' => array('class' => 'input__registerbox')))
            ->setMethod('POST')
            ->add('username', null, array('required' => false, 'validation_groups' => array('registration'),
                        'label' => 'form.username',
                        'translation_domain' => 'FOSUserBundle',
                        'attr' => array('class' => 'input__registerbox')))
            ->add('plainPassword', 'repeated', array(
        'required' => false,
        'validation_groups' => array('registration'),
                'type' => 'password',
                'options' => array('translation_domain' => 'FOSUserBundle'),
                'first_options' => array('label' => 'form.password', 'attr' => array('class' => 'input__registerbox')),
                'second_options' => array('label' => 'form.password_confirmation', 'attr' => array('class' => 'input__registerbox')),
                'invalid_message' => 'fos_user.password.mismatch',
            ))
            ->add('Enregistrer', 'submit', array(
                'attr' => array(
                'class' => 'registerbox__submit bc-btn')))
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => $this->class,
            'intention'  => 'registration',
        ));
    }

    // BC for SF < 2.7
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $this->configureOptions($resolver);
    }

    public function getName()
    {
        return 'bissap_user_registration';
    }
}
<?php
// src/UserBundle/Form/RegistrationType.php

namespace BISSAP\UserBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class RegistrationType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name','text',array('required' => false,'validation_groups' => array('Registration'), 
                        'attr' => array('class' => 'input__registerbox')));
        $builder->add('firstname','text',array('required' => false,'validation_groups' => array('Registration'), 
                        'attr' => array('class' => 'input__registerbox')));
        //$builder->setAction($this->router->generate('fos_user_registration_register', array('type' => 'agent')));

    }

    public function configureOptions(OptionsResolver $resolver) 
    { 
        $resolver->setDefaults(array( 'data_class' => $this->class, 'intention' => 'Registration', 'validation_groups' => array('Registration'))); 
    }

    public function getParent()
    {
        return 'bissap_user_registration';
    }

    public function getName()
    {
        return 'app_user_registration';
    }
}
Attempted to call method "generateUrl" on class "BISSAP\UserBundle\Form\Type\RegistrationFormType".