J'ajoute des formulaires à ma page en utilisant Zend/Form.
J'ajoute des éléments en les définissant comme suit:
$this->add(array(
'name' => 'value',
'attributes' => array(
'type' => 'text',
'id' => 'value',
'autocomplete' => 'off',
'placeholder' => 'Cost',
),
'options' => array(
'label' => 'Cost',
),
));
Comme vous pouvez le constater, il existe un nœud 'label' => 'cost', ce qui a généré une étiquette associée à l'élément input.
Comment ajouter des classes, des attributs à cette étiquette?
S'il vous plaît essayez ceci, je n'ai pas testé ou utilisé cela, mais aller par la source devrait fonctionner correctement:
$this->add(array(
'name' => 'value',
'attributes' => array(),
'options' => array(
'label_attributes' => array(
'class' => 'mycss classes'
),
// more options
),
));
Si cela ne fonctionne pas, laissez-moi s'il vous plaît un commentaire. Si cela ne fonctionne pas, il n’est pas possible d’utiliser cette approche car la FormLabel
restreint un peu la validAttributes
:
protected $validTagAttributes = array(
'for' => true,
'form' => true,
);
Cela fonctionne bien dans 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')
),
));
Pour une approche programmatique sur ZF2 +, essayez ceci:
$element->setOptions(array(
'label_attributes' => array(
'style' => 'color:gray;'
)
));
Inspiré par la réponse de Damon.
$element->setOptions(array('label_class' => array('class' => 'control-label')));
Produit le code comme ceci:
<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>
J'ai essayé ça. Cela fonctionne dans Zend Framework One.
Notez si vous utilisez
$ element-> setOptions (array ('label_attributes' => array ('class' => 'control-label')));
vous obtenez l'effet indésirable pour une raison quelconque de
<label attributes="control-label">
<input type="radio" name="option1" id="option1" value="1">
Option 1
</label>