2012-08-27 2 views
0

사용자를 생성하고 자동으로 암호를 생성하고 싶습니다. 이름, 성 및 전자 메일 필드를 표시하기 위해 사용자 정의 양식 클래스를 사용하고 있습니다. 사용자 이름은 이메일을 기반으로 작성되며 이에 대한 문제는 없습니다. 그러나 나는 암호 유효성 검사를 건너 뛰고 새로운 사용자를 저장할 때 암호 생성을 구현할 수 없습니다.사용자 등록 양식을 사용할 때 암호 검사를 제거하십시오.

나는 정의 validator.xml를 작성해야

다음과 같이 원래는 다음과 같습니다

<?xml version="1.0" encoding="UTF-8" ?> 

<container xmlns="http://symfony.com/schema/dic/services" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> 

    <parameters> 
     <parameter key="fos_user.validator.password.class">FOS\UserBundle\Validator\PasswordValidator</parameter> 
     <parameter key="fos_user.validator.unique.class">FOS\UserBundle\Validator\UniqueValidator</parameter> 
    </parameters> 

    <services> 
     <service id="fos_user.validator.initializer" class="FOS\UserBundle\Validator\Initializer" public="false"> 
      <tag name="validator.initializer" /> 
      <argument type="service" id="fos_user.user_manager" /> 
     </service> 
    </services> 

</container> 

나는 어쩌면 내가

이 좋아 내가 가까이있어 사용자 정의 클래스 여기에 배치해야합니다, fos_user.validator.password.class 여기 참조 솔루션, validator.xml 사용 일부 유효성 검사기를 변경할 수 있지만 NotBlank 유효성 검사기를 Blank으로 어떻게 변경할 수 있는지 알 수 없습니다. 성공하지 않고이 스 니펫을 시도했습니다.

<class name="Application\Sonata\UserBundle\Entity\User"> 

     <property name="plainPassword"> 
      <constraint name="Blank"> 
       <option name="groups">Registration</option> 
      </constraint> 
     </property> 

    </class> 

답변

0

이미 정의 된 제약 조건을 오버로드하는 것은 불가능합니다. 이러한 이유로 많은 사람들이 이것을 제어하기 위해 유효성 검사 그룹을 사용하는 것이 좋습니다. 이 예제에서는 물론 새로운 그룹에 복사하여 붙여 넣어야하는 유효성 검사 규칙이 많기 때문에 나쁜 생각입니다.

이런 이유로 나는 비밀 번호에 대한 숨겨진 필드를 만들고 실제 값을 생성하는 데 사용할 임의의 값으로 채우기로 결정했습니다.