0
내 symfony 기반 응용 프로그램에서 4 가지 유형의 사용자 중 하나는 수퍼 유저이며 일반 fosuserbundle 사용자 일 수 있지만 관리자는 3 가지 유형의 사용자를 추가 할 수 있습니다. 그래서 나는 일이 하나 개의 사용자 유형에 대한 새로운 클라이언트 클래스를 수행 내 기본 사용자 클래스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;
...
}
을 그리고 내 사용자 클래스와 1 엔티티를
class User extends BaseUser
{......}
문제는 레지스터 양식을 수행하는 방법이다 이거? 나에게
도와주세요 지금은이 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,
]);
}
}
그러나 이전 i '를 becuse이 나에게 오류
Neither the property "email" nor one of the methods "getEmail()", "email()", "isEmail()", "hasEmail()", "__get()" exist and have public access in class "AppBundle\Entity\Client".
그 오류는 매우 분명하지 않습니까? Client 클래스를 확인하십시오. –
Thx 주석에 대한, 그리고 네, 그 맑은하지만 내 사용자 클래스에서 클라이언트가 아닌 이메일 필드를 가져 가고 싶습니다 – Anamesh
ClientForm에서 '사용자'이외의 모든 필드를 제거하면 어떻게됩니까? –