0

モデルから構築されたコード検証フォームがあります。ユーザーは、定義済みのリスト (エンティティから読み込まれた) から製品を選択し、一意のコードを入力して検証します。これは:

class CodeType extends AbstractType {
  public function buildForm(FormBuilder $builder, array $options) {
    $builder->add('product', 'entity', array(
                'class' => 'CapsaClubCommonBundle:ProductSubFormat',
                'query_builder' => function(EntityRepository $er) {
                    return $er->createQueryBuilder('p')
                            ->where('p.active=1')
                            ->orderBy('p.id', 'ASC');
                },
                'property' => 'description',
                'required' => true,
                'label' => 'Select a product',
                'property_path' => false
            ))
        ->add('code', 'text', array(
              'property_path' => false));
  }
  public function getName() {
    return 'enter_code';
  }
}

問題は、ユーザーが一度に複数のコードを検証したい場合に選択肢を追加する必要があるため、最終的にこれを追加することになりました (このガイドに従って):

class CollectionCodeType extends AbstractType {
public function buildForm(FormBuilder $builder, array $options) {
    $builder->add('codes', 'collection', array(
                'type' => new CodeType(), 
                'allow_add' => true,
                'prototype' => true,
                'by_reference' => false,
                'property_path' => false
                ));
  }
  public function getName() {
    return 'collection_code';
  }

}

そして、コントローラー$form = $this->createForm(new CollectionCodeType());で呼び出しますが、機能していません。エラーはありません。単にフォームが表示されません。

モデルからの構築が正しいかどうかわからないため、これをどのように行うべきかわかりませんが、この場合、必要なものを達成する方法は他にないと思います。

どうもありがとう。

編集: フォームのレンダリング: http://pastebin.com/aSrUx67N

4

0 に答える 0