2012-03-18 7 views
6

Tengo un widget de colección en mi formulario. Que se muestra como:Formando un widget de colección

Equipos 0 jugador1 InputField
1 jugador2 InputField

me gustaría no mostrar la palabra 'equipos' y el '0' y el '1'. Tengo este bloque en mi plantilla fields.html.twig, pero no estoy realmente seguro de cómo editar esto.

{% 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 %} 

forma 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.

Respuesta

5

Esas etiquetas se crean en el bloque form_label. Normalmente los envuelvo en un div y los oculto cuando es necesario.

Editar:

Hay una solución mejor :).

Cambio collection sección del ChallengeType.php con los siguientes

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

Ahora esas etiquetas no deseadas tendrá team-collection clase. En su archivo CSS, puede configurar display:none para label.team-collection. No es necesario cambiar la definición del bloque de tema de tema.

+0

Tengo otra pregunta. Tengo un widget de fecha y hora que aparentemente también usa esa form_label. He editado mi publicación inicial a lo que tengo ahora. ¿Cómo corrijo esto para que la etiqueta del formulario esté oculta para la colección pero no esté oculta para el widget de fecha y hora? – mattyh88

+0

Encontré algo que dice que podría establecer opciones de representación en un campo individual como este: http://brentertainment.com/other/docs/cookbook/form/twig_form_customization.html#how-to-customize-an-individual-field Pero ¿Hay alguna manera de hacer esto para una etiqueta? – mattyh88

+0

Sí, se puede hacer. Pero es innecesario y complejo. Por favor, siga la solución editada y cuente sobre el resultado :). –