Symfony 프로젝트에 FOSUserBundle을 설치했습니다. 이제 FOSUserBundle이 기본적으로 제공하는 등록 양식 필드를 제거하고 싶습니다.FOSUserBundle에서 양식 필드를 제거하는 방법 Symfony2.8?
등록 양식 필드는 다음과 같습니다
사용자 이름
이메일 ID
비밀번호
나는 사용자
이제
반복 비밀번호 등록하다 그래서 내 번들의 등록 양식을 오버라이드합니다.
\\ Front\FrontBundle\Form\RegistrationType.php
<?php
namespace Front\FrontBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->remove('email'); // here I code for remove email field.
}
public function getParent()
{
return 'FOS\UserBundle\Form\Type\RegistrationFormType';
// Or for Symfony < 2.8
// return 'fos_user_registration';
}
public function getBlockPrefix()
{
return 'app_user_registration';
}
// For Symfony 2.x
public function getName()
{
return $this->getBlockPrefix();
}
}
는 내가 config.yml 및 services.yml 파일을 변경
\\ App/config/config.yml
fos_user:
db_driver: orm
firewall_name: main
user_class: Front\FrontBundle\Entity\User
registration:
form:
type: Front\FrontBundle\Form\RegistrationType
\\app/config/services.yml
services:
app.form.registration:
class: Front\FrontBundle\Form\RegistrationType
tags:
- { name: form.type, alias: app_user_registration }
내 등록 양식에서 제거하지만 username
, password
, repeat password
를 작성 후 양식을 제출할 때의이 이메일 필드를 함께 할 그래서 후 The email is not valid
에 오류가 있으면 알려주세요.
그래서 전자 메일 필드에서 전자 메일 유효성 검사를 제거하려면 다른 파일을 변경해야합니까?
감사합니다.
는'email'는 FOSUser 당신이 확장에 제공하는 모델의 필수 필드입니다. 원하지 않으면 FOS \ UserBundle \ Model \ User를 확장하지 마십시오. – Federkun
@Federico 자세히 설명해 주시겠습니까? 변경해야하는 파일은 무엇입니까? – Dhaval
'email'은 FOSUserBundle에서 제공하는 추상화로 정의되었으므로, 당신은 꽤 많이 사용하게됩니다. 간단한 해결책은 모델의 setUsername 메서드를 재정의하고 가짜 (유효하고 고유 한) 전자 메일을 여기에 설정하는 것입니다. – Federkun