2016-09-19 2 views
1

쉬운 관리 번들을 사용하여 비밀번호 반복을 추가하려고하는데 어떻게해야할지 잘 모르겠습니다. 그것은 단지 두 개의 입력 필드를 만들어 내 config.yml 파일에서 반복하지만 암호 유형 : 나는 유형을 추가하는 경우 나는 나의 실체쉬운 관리 번들에 반복 된 유형 필드를 추가하는 방법

/** 
* @var string 
* 
* @Assert\NotBlank() 
* @Assert\Length(max="4096") 
*/ 
private $plainPassword; 

/** 
* @var string 
* 
* @ORM\Column(type="string", length=64) 
*/ 
private $password; 

에서이 두 가지 속성이있다. 나는 형태가 이렇게되어야한다고 믿습니다.

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('email', EmailType::class) 
     ->add('username', TextType::class) 
     ->add('plainPassword', RepeatedType::class, array(
      'type' => PasswordType::class, 
      'first_options' => array('label' => 'Password'), 
      'second_options' => array('label' => 'Repeat Password'), 
      ) 
     ) 
     ->add('termsAccepted', CheckboxType::class, array(
      'mapped' => false, 
      'constraints' => new IsTrue(), 
     ) 
    ); 
} 

쉬운 관리 번들 설명서를 확인했지만 구현 방법을 다소 잃어 버렸습니다. https://github.com/javiereguiluz/EasyAdminBundle/blob/master/Resources/doc/book/7-complex-dynamic-backends.md

감사

  • 편집 는 좋아요 그래서 나는 JavierEguiluz\Bundle\EasyAdminBundle\Controller\AdminController

    public function createNewForm($entity, array $entityProperties) 
    { 
        $userForm = parent::createNewForm($entity, $entityProperties); 
    
        if ($entity instanceof User) { 
         $userForm->remove('password'); 
         $userForm->add('plainPassword', RepeatedType::class, array(
          'type' => PasswordType::class, 
          'first_options' => array('label' => 'Password'), 
          'second_options' => array('label' => 'Re-enter Password') 
         )); 
        } 
    
        return $userForm; 
    } 
    

의 AdminController를 확장하지만 지금 삽입하려고 할 때/양식을 제출, SQL 오류 암호가 될 수 없습니다 없는.

easy_admin: 
entities: 
    Usuario: 
     class: AppBundle\Entity\Usuario 
     controller: AppBundle\Controller\UsuarioController 
     form: 
      fields: 
       - 'documento' 
       - 'codigo' 
       - 'nombre' 
       - 'apellido' 
       - 'email' 
       - { property: 'passwordEnClaro', type: 'repeated', type_options: { type: 'password', invalid_message: 'Las dos contraseñas deben coincidir', first_options: { label: 'Contraseña' }, second_options: { label: 'Confirmar Contraseña' }, required: false } } 
       - { property: 'rol', type: 'choice', type_options: { choices: { 'ROLE_ADMIN': 'ROLE_ADMIN', 'ROLE_FUNCIONARIO': 'ROLE_FUNCIONARIO', 'ROLE_DOCENTE': 'ROLE_DOCENTE', 'ROLE_ESTUDIANTE': 'ROLE_ESTUDIANTE' }, attr: { 'data-widget': 'select2' } } } 
       - { property: 'dependencia', type: 'easyadmin_autocomplete', type_options: { class: 'AppBundle\Entity\Dependencia' } } 

참고 :

답변

1

당신은 예를 들어 나는이 있고, 당신의 실체를 매핑 config.yml이를 설정할 수있는 컨트롤러 정의는 PreUpdate 사용을위한 것입니다.

+0

재산 'passwordEnClaro'구성은 심포니 3.2에서 작동하도록하기 위해 * 심포니 2.8 작동하고 * 일'- {특성 :. 'plainPassword'입력 : '비밀번호', 라벨 : '비밀번호', help : '암호는 적어도 8 자 이상이어야합니다.', type_options : {required : false}}' –

+0

심포니 4 베타 1을 사용하면 어떤 문제가 발생합니다. "password"유형을로드 할 수 없습니다. – Leggy7

0

암호 대신 Symfony \ Component \ Form \ Extension \ Core \ Type \ PasswordType을 입력하십시오. .

 form: 
      fields: 
       - {'property': 'plainPassword', type: 'repeated', type_options: { type: Symfony\Component\Form\Extension\Core\Type\PasswordType, required: false, first_options: {label: 'label.password'}, second_options: {label: 'label.password_confirmation'} } } 
관련 문제