2012-10-31 1 views
1

다음 (단순) 질문이 아닌 필드 엔티티 바인더 제본 작성 양식 :Symfony2 : 나로부터 속성

$user = new User(); 
    $user->setEventid(2); 
    $user->setT(new \DateTime('now')); 

    $em = $this->getDoctrine()->getManager(); 
    $em->persist($user); 
    $em->flush(); 

    $form = $this->createFormBuilder($user) 
    ->add('email', 'email') 
    ->add('terms', 'checkbox', array(
      'label'  => 'Read terms?', 
      'required' => true)) 
    ->getForm(); 

이 내 코드입니다. 이메일은 이용자의 재산이며 이용 약관이 아닙니다. 나는 그 (것)들을 사용자가 그들의 전자 우편을 저장하고 기간 체크 박스를 검사하기 위하여 원한다 그러나 상자를 검사하는 경우에 아닙니다 다만 나는 전자 우편을 저장할 필요가있다 - 그들이 형태를 복종 할 수없는 경우에.

내가 무슨 뜻인지 아시겠습니까? 나는 이것을 매우 쉽게 수행 할 수있다.)

두 번째 질문 : 렌더링 된 태그에서 jquery에서 추가 처리를위한 id 특성을 어떻게 부여 할 수 있습니까?

답변

2

양식에 엔티티에 존재하지 않는 필드를 추가하려면 다음을 사용 :

->add('terms', 'checkbox', array(
    'label'   => 'Read terms?', 
    'required'  => true, 
    'mapped'  => false, // this works since Symfony 2.1 
    'property_path' => false, // this works since Symfony 2.0 
)) 

Symfony는 각 양식 요소에 대한 ID를 생성합니다. 렌더링 된 페이지 소스를 열고 필요한 요소의 ID를 확인하십시오.

+0

신난다, 고마워! ID- "문제"에 관해서는 : 내 양식이나 내 요소에 ids가 있습니다 - 나는 'attr'속성을 가진 요소에 대한 ID를 얻을 수 있다고 생각합니다. 그러나 어떻게 양식 자체에서 그것을 얻을 수 있습니까 ?? – humpdi

+0

'id' 속성을 출력하는'form' 태그에 추가하십시오 - Symfony는 그 태그를 출력하지 않습니다. –

0

엔티티에 'terms'필드가 없으면 저장되지 않습니다. 두 번째 질문에 대한 , 그것은 나뭇 가지의 형태에 ID를 설정하는 것은 매우 간단 간단합니다

{{ form_label(form.name, 'Your Name', { 'attr': {'id': 'foo'} }) }} 
+0

당신은 아주 초보자처럼 나에게 이야기해야 할까봐 걱정됩니다. 내 엔티티에 용어 필드가 없다면 저장하지 않을 것입니다.하지만 위와 같이 저장하고 싶지는 않습니다. 문제는, 내가 그것에 사용자 객체를 묶었 기 때문에 이것과 같은 폼을 만드는 것은 속성이어야한다는 것입니다. (더 많은 유연성을 가진 양식을 만드는 또 다른 방법을 보여주십시오) 초 : 정확히 같은, 내가 어떻게 내 코드에서 볼 수 있듯이 자동 정의 된 양식 필드가있는 양식을 만드는 방법을 모릅니다. 사용자 객체에서 생성하십시오. – humpdi