Как добавить атрибуты к метке, сгенерированной с помощью Zend/Form в Zend framework 2
Я добавляю формы на свою страницу, используя Zend/Form.
Я добавляю элементы, определяя их следующим образом:
$this->add(array(
'name' => 'value',
'attributes' => array(
'type' => 'text',
'id' => 'value',
'autocomplete' => 'off',
'placeholder' => 'Cost',
),
'options' => array(
'label' => 'Cost',
),
));
Как вы можете видеть, существует "label" = > "cost" node, это сгенерировало метку для входа с элементом ввода.
Как добавить классы, атрибуты к этой метке?
Ответы
Ответ 1
Попробуйте это, я не тестировал и не использовал это, но, следуя источнику, он должен функционировать должным образом:
$this->add(array(
'name' => 'value',
'attributes' => array(),
'options' => array(
'label_attributes' => array(
'class' => 'mycss classes'
),
// more options
),
));
Если это не работает, оставьте мне комментарий. Если он не будет функционировать, использовать этот подход невозможно, так как FormLabel
довольно сильно ограничивает validAttributes
:
protected $validTagAttributes = array(
'for' => true,
'form' => true,
);
Ответ 2
Это хорошо работает в 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')
),
));
Ответ 3
$element->setOptions(array('label_class' => array('class' => 'control-label')));
Производит такой код:
<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>
Я пробовал это. Он работает в Zend Framework One.
Обратите внимание, если вы используете
$element- > setOptions (array ('label_attributes' = > array ('class' = > 'Контроль метки')));
вы получаете нежелательный эффект по какой-либо причине
<label attributes="control-label">
<input type="radio" name="option1" id="option1" value="1">
Option 1
</label>
Ответ 4
Для программного подхода на ZF2 + попробуйте следующее:
$element->setOptions(array(
'label_attributes' => array(
'style' => 'color:gray;'
)
));
Вдохновленный ответом Деймона.