2012-03-29 3 views
0

심포니를 처음 사용합니다. I 코드를 사용하여 등록 양식을 생성 한 다음 REGISTERTYPE 클래스 Symfony의 기존 클래스 확장하기

$user = new Register(); 
$form = $this->createForm(new RegisterType(), $user); 

i는 데이터베이스의 값을 저장 .I (예) 5 개 필드를 가질 때 시스템과 사용자 레지스터. 지금 나는 다음과 같은 코드를 사용하여 편집 페이지를 표시 :

$user = $em->getRepository('MysiteUserBundle:Register')->find($id); 
$form = $this->createForm(new RegisterType(), $user); 

//edit.html.twig 코드를

 <form action="{{ path('MysiteUserBundle_register_update',{'id':user.id}) }}" method="post" {{ form_enctype(form) }} class="register"> 
      {{ form_errors(form) }} 

      {{ form_row(form.firstname) }} 
      {{ form_row(form.lastname) }} 
      {{ form_row(form.username) }} 



      <p> 
      <input type="submit" value="Submit"> 
       </p> 
      </form> 

편집 코드의 문제, 그러나 그것은에서 언급 된 모든 필드를 저를 표시한다는 것입니다 RegisterType 클래스입니다. 일부 필드 만 표시 할 수 있습니다. 그렇다면 어떻게 달성 될 수 있습니다. 도움이 될 것입니다

+0

나뭇 가지 템플릿 코드를 볼 수 있습니까? – Flukey

답변

2

등록은 사용자마다 한 번 발생하기 때문에 등록 양식 유형을 사용하여 사용자를 편집하는 것은 이치에 맞지 않습니다. 대신 사용자를 편집 할 때 필요한 필드 만 가진 다른 양식 유형을 작성할 수 있습니다. 중복을 피하기 위해 다른 하나를 확장 할 수 있습니다.

당신은 또한 수 :

  • 단지 하나의 형태 유형을 유지하지만, 조건부 일부 필드를 추가 - 기업이 새로운 즉, 경우에만 사용할 수 있습니다. 엔티티를 $options['data']과 같은 양식 유형으로 가져올 수 있으며 ID가 null 또는 기타가 아닌지 확인하십시오.
  • form events을 사용하십시오.
관련 문제