2012-03-18 16 views
6

Mam widżet kolekcji w mojej formie. Który jest wyświetlany jak:Tworzenie motywu widżetowego kolekcji

Zespoły 0 Gracz1 inputfield
1 player2 inputfield

Chciałbym nie wyświetli słowo 'drużyna' i '0' i '1'. Mam ten blok w moim szablonie fields.html.twig, ale nie jestem pewien, jak to edytować.

{% block collection_widget %} 
{% spaceless %} 
    {% if prototype is defined %} 
     {% set attr = attr|merge({'data-prototype': form_row(prototype) }) %} 
    {% endif %} 
    {{ block('form_widget') }} 
{% endspaceless %} 
{% endblock collection_widget %} 

{% block form_label %} 
{% spaceless %} 
    <div class="hidden"> 
     {{ block('generic_label') }} 
    </div> 
{% endspaceless %} 
{% endblock form_label %} 

postać ChallengeType:

class ChallengeType extends AbstractType 
{ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('teams', 'collection', array(
       'type' => new TeamType(), 
       'allow_add' => true 
      )) 
      ->add('place') 
      ->add('date'); 
    } 

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

    public function getDefaultOptions(array $options) 
    { 
     return array('data_class' => 'Tennisconnect\DashboardBundle\Entity\Challenge'); 
    } 
} 

Thx.

Odpowiedz

5

te lables są tworzone w form_label bloku. Zazwyczaj zawijam je w div i ustawiając je w razie potrzeby.

Edit:

Jest to lepsze rozwiązanie :).

Zmień collection odcinek ChallengeType.php z następujących

->add('teams', 'collection', array(
       'type' => new TeamType(), 
       //label for Teams text 
       'attr' => array('class' => 'team-collection'), 
       //label for each team form type 
       'options' => array(
        'attr' => array('class' => 'team-collection') 
       ), 
       'allow_add' => true 
      )) 

Teraz te niechciane etykiety będą miały team-collection klasę. W twoim pliku css możesz ustawić display:none dla label.team-collection. Nie trzeba zmieniać definicji bloku motywu.

+0

Mam inne pytanie. Mam widget datetime, który najwyraźniej również używa tego formularza. Zmienilem swój pierwszy post na to, co mam teraz. Jak to naprawić, aby etykieta formularza była ukryta dla kolekcji, ale nie została ukryta dla widżetu datetime? – mattyh88

+0

znalazłem coś, co mówi, mogę ustawić opcje renderowania w indywidualnym zakresie jak ten: Ale http://brentertainment.com/other/docs/cookbook/form/twig_form_customization.html#how-to-customize-an-individual-field czy jest jakiś sposób, aby to zrobić dla etykiety? – mattyh88

+0

Tak, można to zrobić. Ale jest to niepotrzebne i skomplikowane. Podążaj za edytowanym rozwiązaniem i informuj o wyniku :). –

Powiązane problemy