php forms zend-framework2 label zend-form2

php - Cómo agregar atributos a una etiqueta generada con Zend/Form en el marco Zend 2



forms zend-framework2 (4)

Estoy agregando formularios a mi página usando Zend / Form.

Estoy agregando elementos definiéndolos de la siguiente manera:

$this->add(array( ''name'' => ''value'', ''attributes'' => array( ''type'' => ''text'', ''id'' => ''value'', ''autocomplete'' => ''off'', ''placeholder'' => ''Cost'', ), ''options'' => array( ''label'' => ''Cost'', ), ));

Como puede ver, hay un nodo ''etiqueta'' => ''costo'', esto generó una etiqueta para ir con el elemento de entrada.

¿Cómo agrego clases, atributos a esta etiqueta?


Esto funciona bien en Zend Framework 2.3:

$this->add(array( ''name'' => ''userName'', ''attributes'' => array( ''type'' => ''text'', ''class'' => ''form-control'', ''placeholder'' =>''Username'', ), ''options'' => array( ''label'' => ''Username'', ''label_attributes'' => array(''class'' => ''control-label'') ), ));


Para el enfoque programático en ZF2 + intente esto:

$element->setOptions(array( ''label_attributes'' => array( ''style'' => ''color:gray;'' ) ));

Inspirado por la respuesta de Damon.


Por favor, intente esto, no lo he probado ni lo he usado, pero según la fuente debería funcionar correctamente:

$this->add(array( ''name'' => ''value'', ''attributes'' => array(), ''options'' => array( ''label_attributes'' => array( ''class'' => ''mycss classes'' ), // more options ), ));

Si esto no funciona, por favor déjame un comentario. Si no funciona, no es posible usar este enfoque, ya que FormLabel restringe bastante los validAttributes :

protected $validTagAttributes = array( ''for'' => true, ''form'' => true, );


$element->setOptions(array(''label_class'' => array(''class'' => ''control-label'')));

Produce código como este:

<label class="control-label"> <input type="radio" name="option1" id="option1" value="1"> Option 1 </label> <label class="control-label"> <input type="radio" name="option2" id="option2" value="2"> Option 2 </label>

He intentado esto. Funciona en Zend Framework One.

Nota si usas

$ element-> setOptions (array (''label_attributes'' => array (''class'' => ''control-label'')));

Obtienes el efecto indeseable por alguna razón de

<label attributes="control-label"> <input type="radio" name="option1" id="option1" value="1"> Option 1 </label>