2011-10-26 25 views
7

Sto tentando di sovrascrivere il RegistrationFormType nel FOSUserBundle di Symfony2. Sto seguendo la documentazione e credo di aver coperto tutto. Ho creato un pacchetto per contenere i miei overrides su FOSUserBundle e il codice seguente proviene da questo pacchetto e dalla configurazione dell'applicazione.Impossibile caricare il tipo "XYZ" errore durante l'override dei tipi di modulo FOSUserBundle

Qualcuno ha riscontrato questo errore durante l'override di FOSUserBundle o ha visto qualcosa nel mio codice che potrebbe aiutare a spiegare perché continuo a ricevere questo errore. Sono su 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 File

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} 

di applicazione Config

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

Come utilizzare questo parametro '% fos_user.model.user.form_data_class%' invece di '% fos_user.model.user.class%' nella definizione del servizio? –

risposta

4

Risulta mio file services.yml non veniva caricato tramite l'iniezione di dipendenza. Dopo aver scavato in giro mi sono reso conto che il mio file extension.php per questo pacchetto era chiamato in modo errato. All'inizio avevo rinominato il pacchetto e ho fatto un refuso quando si rinomina il file extension.php all'interno della cartella DependencyInjection. Dopo aver corretto il mispelling, tutto funziona di nuovo.

+0

Perfetto, ho perso anche il mio file di estensione. – jmoz

0

Forse si è tentato di aggiungere solo una nuovo campo e guarda se funziona?

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

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

ricordarsi di svuotare la cache prod se si sta testando anche da lì ...

+0

Ho e non sembra aiutare. Ho persino provato ad estendere da Symfony \ Component \ Form \ AbstractType; aggiungendo la logica constructor e getDefaultOptions che utilizza FF 'RegistrationFormType. Anche questo non sembrava aggiustarlo. – Jeremy

+0

Sembra così strano. Se questo mi succede, provo a seguire la documentazione di FOSUserBundle "così com'è", quindi passo con piccoli cambiamenti verso la configurazione necessaria ... – dlondero

+0

Sì, è strano ... Proverò a ripristinare il mio codice e implementare di nuovo il bundle con le mie personalizzazioni FOS. – Jeremy

Problemi correlati