2017-12-06 10 views
0

私のsymfonyベースアプリケーションでは、4種類のユーザーがいます。そのうちの1つはスーパーユーザーで、典型的なfosuserbundleユーザーですが、管理者は3種類のユーザーを追加できます。だから1持っているユーザーのいずれかのタイプのための新しいクライアントクラスを実行します。私のベースのユーザー・クラスで1エンティティをsymfony3 FOSuserbundle登録フォーム1対1のエンティティ

class Client{ 
my client class fields 
... 
    /** 
    * @ORM\OneToOne(targetEntity="AppBundle\Entity\User") 
    * @ORM\JoinColumn(name="user_id", referencedColumnName="id") 
    */ 
    private $user; 
... 
} 

そして、私のUserクラス

class User extends BaseUser 
{......} 

質問は、レジスタの形式を行う方法でありますこのため ?以前の私は「becuse、

は今、私はこののUserTypeフォーム

class UserType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     parent::buildForm($builder, $options); 
    } 

    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => User::class, 
     )); 
    } 

    public function getParent() 
    { 
     return 'FOS\UserBundle\Form\Type\RegistrationFormType'; 
    } 

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

そして、私のclientFormクラス

class ClientForm extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('name', TextType::class) 
      ->add('address', TextareaType::class) 
      ->add('phone', TextType::class) 
      ->add('deliveryAddress', TextareaType::class) 
      ->add('user', UserType::class); 
    } 

    public function getParent() 
    { 
     return 'FOS\UserBundle\Form\Type\RegistrationFormType'; 
    } 

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

    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults([ 
      'data_class' => Client::class, 
     ]); 
    } 
} 

を持っている。しかし、これは私にエラー

+0

このエラーは非常に明確ですね。 Clientクラスを確認してください。 –

+0

コメントのためのThx、はい、明確ですが、クライアントではなくユーザークラスから電子メールフィールドを取得したい場合 – Anamesh

+0

ClientFormから 'user'以外のすべてのフィールドを削除するとどうなりますか? –

答えて

0

沖を与え、私を助けてくださいこれを行うには、私はちょうど私のClientFormクラスとすべてのルックフィンからgetParentとgetBlockPrefixを削除するための多くの異なる方法を試してみてくださいe :)

関連する問題