2017-08-02 15 views
1

私はsymfonyを初めて使いました。私はsymfony 2.8を使用しています。 FOSUserBundleがインストールされていて、うまくいきました。問題は、登録フォームにフィールドを追加したいのです。FOSUserBundle documentationの手順に従いましたが、何も変更されていないため、エラーは発生しません。 私は何が欠けているのか分かりません。FOSUserBundleデフォルトの登録フォームを無効にできません

<?php 
// src/AppBundle/Form/RegistrationType.php 

namespace AppBundle\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'); 
    } 

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

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

アプリ/設定/ services.ymlファイル:これはRegistrationType.phpある

<?php 
// src/AppBundle/Entity/User.php 

namespace AppBundle\Entity; 

use FOS\UserBundle\Entity\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 
use Symfony\Component\Validator\Constraints as Assert; 

/** 
* @ORM\Entity 
* @ORM\Table(name="fos_user") 
*/ 
class User extends BaseUser 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\Column(type="string", length=255) 
    * 
    * @Assert\NotBlank(message="Please enter your name.", groups={"Registration", "Profile"}) 
    * @Assert\Length(
    *  min=3, 
    *  max=255, 
    *  minMessage="The name is too short.", 
    *  maxMessage="The name is too long.", 
    *  groups={"Registration", "Profile"} 
    *) 
    */ 
    protected $name; 

    public function __construct() 
    { 
     parent::__construct(); 
     // your own logic 
    } 
} 

: は、これは私のUserエンティティである

parameters: 
    #parameter_name: value 

services: 
    app.form.registration: 
     class: AppBundle\Form\RegistrationType 
     tags: 
      - { name: form.type, alias: app_user_registration } 

そして、これはセクションですapp/config/config.ymlのFOSUserBundleに関連しています:

fos_user: 
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' 
    firewall_name: main 
    user_class: AppBundle\Entity\User 
    registration: 
     form: 
      name: app_user_registration 

私が紛失しているものが見つかりませんでした。 ありがとうございます。

+0

あなたのエラーを表示することができますか? –

+0

私はエラーを起こさない、それはただ変化しない。私はフォームの新しいフィールドを取得しません。 –

+0

'doctrine:schema:update'を実行しましたか? –

答えて

2

あなたformに入れる:

/** 
* @param OptionsResolverInterface $resolver 
*/ 
public function setDefaultOptions(OptionsResolverInterface $resolver) 
{ 
    $resolver->setDefaults(array(
     'data_class' => 'AppBundle\Entity\User' 
    )); 
} 

をあなたはsymfonyのを使用している場合は、symfonyの< 2.8

# app/config/config.yml 
fos_user: 
    # ... 
    registration: 
     form: 
      type: AppBundle\Form\RegistrationType 

を使用している場合> 2.8

# app/config/config.yml 
fos_user: 
    # ... 
    registration: 
     form: 
      name: AppBundle\Form\RegistrationType 
+0

@ YassineYounes問題を解決しましたか? –

+0

はい、そうでした!どうもありがとうございます! –

+0

だから、どこが間違っていたのですか? –

関連する問題