2011-10-26 17 views
7

Estoy intentando anular RegistrationFormType en Symfony2 FOSUserBundle. Estoy siguiendo la documentación y creo que he cubierto todo. Creé un paquete para contener mis modificaciones al FOSUserBundle y el siguiente código es de este paquete, así como la configuración de la aplicación.No se pudo cargar el error de tipo "XYZ" al reemplazar los tipos de formulario FOSUserBundle

Alguien ha experimentado esto al anular FOSUserBundle, o ver cualquier cosa en mi código que pueda ayudar a explicar por qué sigo recibiendo este error. Estoy en Symfony v2.0.4

RegistrationFormType.php

<?php 

/* 
* This file is part of the FOSUserBundle package. 
* 
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/> 
* 
* For the full copyright and license information, please view the LICENSE 
* file that was distributed with this source code. 
*/ 

namespace Thrive\SaasBundle\Form\Type; 

use Symfony\Component\Form\FormBuilder; 
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType; 

class RegistrationFormType extends BaseType 
{ 

    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('firstname', null, array('error_bubbling' => true)) 
      ->add('lastname', null, array('error_bubbling' => true)) 
      ->add('company', null, array('error_bubbling' => true)) 
      ->add('email', 'email', array('error_bubbling' => true)) 
      ->add('username', null, array('error_bubbling' => true)) 
      ->add('plainPassword', 'repeated', array('type' => 'password', 'error_bubbling' => true)) 
      ; 
    } 

    public function getName() 
    { 
     return 'thrive_user_registration'; 
    } 

} 

Services.yml

services: 
    thrive_saas_registration.form.type: 
    class: Thrive\SaasBundle\Form\Type\RegistrationFormType 
    arguments: [%fos_user.model.user.class%] 
    tags: 
     - { name: form.type, alias: thrive_user_registration} 

configuración del archivo de aplicación

fos_user: 
    ... 
    registration: 
     form: 
     type: thrive_user_registration 
+0

¿Qué le parece usar este parámetro '% fos_user.model.user.form_data_class%' en lugar de '% fos_user.model.user.class%' en la definición del servicio? –

Respuesta

4

Resulta que mi archivo services.yml no estaba siendo cargado a través de la inyección de dependencia. Después de investigar, me di cuenta de que mi archivo extension.php para este paquete se llamaba incorrectamente. Al principio había cambiado el nombre del paquete e hice un error al renombrar el archivo extension.php dentro de la carpeta DependencyInjection. Después de corregir el error, todo vuelve a funcionar.

+0

Perfecto, también eché de menos mi archivo de extensión. – jmoz

0

Did se trató de simplemente añadir una nuevo campo y mira si funciona?

public function buildForm(FormBuilder $builder, array $options) 
{ 
    parent::buildForm($builder, $options); 

    // add your custom field 
    $builder->add('name'); 
} 

Asimismo, recuerda a borrar la memoria caché prod si se está probando desde allí ...

+0

Tengo y no pareció ayudar. Incluso intenté extenderme desde Symfony \ Component \ Form \ AbstractType; mientras agrega el constructor y la lógica getDefaultOptions que usa RegistrationFormType de FOS. Esto tampoco pareció arreglarlo. – Jeremy

+0

Parece tan raro. Si esto me pasara, trataré de seguir la documentación de FOSUserBundle "tal como está", y luego iré con pequeños cambios hacia la configuración necesaria ... – dlondero

+0

Sí, es raro ... Voy a intentar deshacer mi código y Implementar el paquete de nuevo que tiene mis personalizaciones de FOS. – Jeremy

Cuestiones relacionadas