2011-10-26 17 views
7

Symfony2 FOSUserBundle'da RegistrationFormType'ı geçersiz kılmaya çalışıyorum. Dokümanları takip ediyorum ve her şeyi kapsadığına inanıyorum. Geçersiz kılmalarımı FOSUserBundle'a eklemek için bir paket oluşturdum ve aşağıdaki kod bu paketin yanı sıra uygulama yapılandırmasıdır.FOSUserBundle form türleri geçersiz kılındığında, "XYZ" hatası türü yüklenemedi

FOSUserBundle'ı geçersiz kılan veya bunu benim bu hatayı neden aldığımın açıklanmasına yardımcı olacak bir şey görebilecek herkes bunu deneyimledi. Ben symfony v2.0.4

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

Hizmet tanımında '% fos_user.model.user.class% 'yerine'% fos_user.model.user.form_data_class% 'bu parametresi nasıl kullanılır? –

cevap

4

benim services.yml dosya bağımlılık enjeksiyon yoluyla yüklenen değildi çıkıyor. Etrafında kazma sonra bu paket için benim extension.php dosyamı yanlış olarak anladım. Erkenda bundle adını değiştirdim ve DependencyInjection klasörünün içindeki extension.php dosyasını yeniden adlandırırken bir yazım hatası yaptım. Yanlış yazım düzeltildikten sonra her şey tekrar çalışır.

+0

Mükemmel, benim uzantısı dosyamı da özledim. – jmoz

0

sadece bir tane eklemek için çalıştı mı

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} 

uygulamanın yapılandırma dosyası çıkıyorum yeni alan ve işe yaradı mı bak? Ayrıca

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

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

oradan test ediyorsanız sizin prod önbelleğini temizlemeyi unutmayın

...

+0

Ben sahibim ve yardımcı olmadı. Symfony \ Component \ Form \ AbstractType'dan genişletmeyi bile denedim; FOS 'RegistrationFormType'ın kullandığı yapıcı ve getDefaultOptions mantığına eklerken. Bu da düzeltmek için görünmüyordu. – Jeremy

+0

Çok garip görünüyor. Bu bana olursa FOSUserBundle "olduğu gibi" belgelerini takip etmeye çalışıyorum, daha sonra gerekli konfigürasyona doğru küçük değişiklikler yapın ... – dlondero

+0

Evet, garip ... Kodumu geri almayı deneyeceğim FOS özelleştirmeleri içeren paketi tekrar uygula. – Jeremy

İlgili konular