2012-09-24 5 views
0

사용자 등록시 functionnality를 설정하고 싶습니다. 사용자는 이전에 생성되어 테이블에 저장된 쿠폰 코드를 입력 할 수 있습니다. 이 필드는 사용자 등록 양식과 함께 나타납니다. 사용자가 존재하지 않는 코드를 입력하면 양식이 유효하지 않음을 나타내는 코드가 유효하지 않음을 알리는 오류 메시지가 나타납니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?symfony2 : 사용자 등록 양식의 쿠폰 필드

내 문제는 쿠폰 필드가 사용자 엔터티에 연결되어 있지 않다는 것입니다. ajax를 사용하여 쿠폰 코드의 유효성을 검사하고 코드가 있거나 입력란이 비어있는 경우에만 양식의 유효성을 검사 할 수 있습니다. 그러나 이와 같이 진행하면 어떻게하면 RegistrationFormHandler에서 쿠폰 코드 데이터에 액세스 할 수 있습니까? 목표는 유효한 코드를 입력 한 사용자에게 특별 권한을 부여하는 것입니다.

전혀 좋은 방법입니까? 양식에서

답변

1

거짓 property_path있는 텍스트 필드를 추가

$builder->add('coupon', 'text', array('property_path' => false)); 

아약스 또는 사용자 정의 이벤트 가입자를 사용하여 하나의 유효성을 검사 (나는 후자를 선호). 귀하의 컨트롤러에 있음 양식이 유효한지 확인하는 것으로 충분합니다 :

if('POST' === $request->getMethod()) { 
    $form->bindRequest($request); 
} 

if('GET' === $request->getMethod() && $form->isValid()) { 
    // Here both user and coupon are valid 
    $coupon = $form->get('coupon')->getData(); 
} 
+0

잘 작동합니다. 감사합니다! Additionnaly, 아약스보다 이벤트 가입자를 사용하는 이유를 설명 할 수 있습니까? Personnaly 나는 아약스를 더 편안하게 사용했습니다. –

+0

@Marronsuisse 왜냐하면 당신이 이미 (아약스없이) POST로 사용자 엔티티를 검증한다면 나는 쿠폰과 똑같이 갈 것입니다 ... – gremo

관련 문제