2015-04-04 40 views
0

我試圖重寫在Symfony2的項目FOSUser束的認購申請表,但我得到這個錯誤:發行覆蓋訂閱表格FOSUser捆綁

警告:缺少參數1 Utilisateurs \ UtilisateursBundle \表格\型號\ RegistrationFormType :: __ construct(),在3730行調用C:\ wamp \ www \ biblishare \ app \ cache \ dev \ appDevDebugProjectContainer.php並定義爲

我搜索同一個問題但無法解決它.. 。

這裏是我的代碼:

-app /配置/ config.yml

fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: Utilisateurs\UtilisateursBundle\Entity\Utilisateurs 
    from_email: 
      address:  [email protected] 
      sender_name: [email protected] 
    registration: 
     form: 
      type: utilisateurs_utilisateurs_registration 

-.../UtilisateursBundle /資源/配置/ services.yml

services: 
    utilisateurs_utilisateurs.listener.authentication_success_handler: 
     class: %utilisateurs_utilisateurs.listener.authentication_success_handler.class% 
     public: false 
     arguments: ['@router', '@doctrine.orm.entity_manager', '@security.context'] 

    utilisateurs_utilisateurs.registration.form.type: 
     class: Utilisateurs\UtilisateursBundle\Form\Type\RegistrationFormType 
     tags: 
      - { name: form.type, alias: utilisateurs_utilisateurs_registration } 

和我的形式:

<?php 

namespace Utilisateurs\UtilisateursBundle\Form\Type; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
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) 
    { 
     // add your custom field 
     $builder 
      ->add('first_name', null, array('label' => 'Prénom :', 'translation_domain' => 'FOSUserBundle')) 
      ->add('family_name', null, array('label' => 'Nom :', 'translation_domain' => 'FOSUserBundle')) 
      ->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle')) 
      ->add('plainPassword', 'repeated', array(
       'type' => 'password', 
       'options' => array('translation_domain' => 'FOSUserBundle'), 
       'first_options' => array('label' => 'form.password'), 
       'second_options' => array('label' => 'form.password_confirmation'), 
       'invalid_message' => 'fos_user.password.mismatch', 
      )) 
     ; 
    } 

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

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

謝謝爲了您的幫助,我試圖擦除緩存,但它不起作用...

回答

2

您需要添加用戶類作爲參數您的服務定義,以便在__construct方法中調用它。

utilisateurs_utilisateurs.registration.form.type: 
    class: Utilisateurs\UtilisateursBundle\Form\Type\RegistrationFormType 
    arguments: 
     - %fos_user.model.user.class% 
    tags: 
     - { name: form.type, alias: utilisateurs_utilisateurs_registration } 
+0

它的工作原理就像一個沙發,歡呼! – AlphaNico 2015-04-05 10:07:35