0

フォームのコレクションがあります。結果をレンダリングすると、フォームごとにdivとlabelがあります(フォームの追加にプロトタイプを使用すると、これらも追加されます)最初のフォームは

namespace Webwall\CamBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class SocialType extends AbstractType {

    public function buildForm(FormBuilderInterface $builder, array $options) {
        $builder

                ->add('account')

        ;
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver) {
        $resolver->setDefaults(array(
            'data_class' => 'Webwall\CamBundle\Entity\Social',
        ));
    }

    public function getName() {
        return 'social';
    }

}

「メインフォーム」は

namespace Webwall\CamBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class MediaType extends AbstractType {

    public function buildForm(FormBuilderInterface $builder, array $options) {

        $builder                
                ->add('socials', 'collection', array(
                    'type' => new SocialType(),
                    'allow_add' => true, 
                ))

        ;
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver) {
        $resolver->setDefaults(array(
            'data_class' => 'Webwall\CamBundle\Entity\Media'
        ));
    }

    public function getName() {
        return 'foto';
    }

}

私の小枝で

<div id="form_foto">
{{ form_errors(form) }}
{{ form_rest(form) }}

私のドームで私はこれを持っています

<div><label class="required">Socials</label><div id="foto_socials" data-prototype=""><div><label class="required">0</label>

なぜこのデフォルトのdivがあるのですか?ありがとう!

4

2 に答える 2

1

小枝ファイルを編集する

                        <ul class="unstyled child" data-prototype="{{ form_widget(form.socials.vars.prototype)|e }}">
                            {% for row in form.socials %}
                                <li style="margin-bottom: 5px;"> {{ form_widget(row.account) }}</li>
                            {% endfor %}
                        </ul>
于 2013-02-04T02:15:16.940 に答える
0

同じ問題がありました。小枝を変更するか(Kaanの提案に従って)、オプション行を追加するだけで次のようにタイプフォームを変更できます

    $builder                
            ->add('socials', 'collection', array(
                'type' => new SocialType(),
                'options' => array('label' => false), // ADD THIS LINE IN YOUR CODE
                'allow_add' => true, 
            ))
于 2015-02-16T16:13:03.017 に答える