2012-03-29 16 views
0

symfonyを初めて使用しています。私は、コードを使用して、登録フォームを作成した:Symfonyの既存のクラスを拡張する

RegisterTypeクラスの
$user = new Register(); 
$form = $this->createForm(new RegisterType(), $user); 

iは(例えば)5つのフィールドを持っているユーザがシステムに登録するとき.Iは、データベース内の値を格納します。 EDITのコードの問題は、しかし、それは私の中で言及したすべてのフィールドを表示することである

$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> 

:今、私は、次のコードを使用してEDITページを表示しますRegisterTypeクラス。いくつかのフィールドだけを表示することができます。はいの場合、どのようにこれを達成することができます。どんな助けもありがとう

+0

あなたの小枝のテンプレートコードを確認できますか... – Flukey

答えて

2

登録はユーザーごとに1回行われるため、登録フォームタイプを使用してユーザーを編集するのは意味がありません。代わりに、ユーザーを編集するときに必要なフィールドだけを持つ別のフォームタイプを作成することができます。重複を避けるためにもう一方を拡張することができます。

またできます

  • はただ一つのフォームタイプを保ちますが、条件付きでいくつかのフィールドを追加する - それは、企業が新しいものであるときにのみ、です。エンティティを$options['data']というフォームタイプで取得し、IDがnullかどうかを確認することができます。
  • form eventsを使用してください。
関連する問題