2012-03-29 45 views
0

我是symfony的新手。我已經使用的代碼創建的登記表:擴展Symfony中的現有類

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

在RegisterType類我有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 2012-03-29 11:29:37

回答

2

使用註冊表單類型來編輯用戶沒有意義,因爲註冊每個用戶發生一次。相反,您可以創建另一種表單類型,僅編輯用戶時需要這些字段。一個可以擴展另一個以避免重複。

你還可以:

  • 請只是一個形式類型,但某些字段添加條件 - 那就是,只有當實體是新的。你可以讓表單類型爲$options['data'],並檢查其ID是不是null或其他。
  • 使用form events