Как установить положение флажков/переключателей в Zend Framework 2?

Я пробовал так:

<?php
echo $this->formRow($form->get('weekday'), Zend\Form\View\Helper\FormRow::LABEL_PREPEND);
?>

Но метки по-прежнему остаются за флажками.

введите здесь описание изображения

Как мне правильно установить положение метки?


person automatix    schedule 10.04.2013    source источник
comment
Можете ли вы попробовать установить option { label_position = 'append' } на свой weekday элемент? :) Это может уже решить проблему, но я не уверен, если нет, у меня есть более длинное решение: P   -  person Sam    schedule 11.04.2013


Ответы (1)


Является ли день недели мультифлажком? Если это так, используйте метод рендеринга formMultiCheckbox вместо formRow, и метка будет расположена там, где вы хотите.

Я отлаживал процесс, и это странное поведение. При вызове класса Zend/Form/View/Helper/FormRow позиция метки инициализируется так, как вы ожидаете (LABEL_PREPEND).

Позже вызывается класс Zend/Form/View/Helper/FormMultiCheckbox, но он не наследует позицию от FormRow и использует значение по умолчанию, которое равно вы не хотите, LABEL_APPEND.

Проверьте метод __invoke в обоих классах, и вы увидите.

person lluisaznar    schedule 11.04.2013
comment
Следует отметить, что <fieldset> и <legend> необходимо отображать вручную, поскольку FormMultiCheckbox отображает только флажки. Вот почему я попросил другую попытку выше с установкой label_position в качестве опции для элемента, что должно решить проблему;) - person Sam; 11.04.2013
comment
Благодарю за ваш ответ! Теперь это работает! Такое поведение не так уж и странно. В радио/мультифлажке есть два типа меток: метка всего набора и метка каждого элемента: <label>type_1<label>type_2<input /></label><label>type_2<input /></label></label> (в ZF type_2 не получает тег label по умолчанию). Я думаю, хорошо, что позиция метки type_1 (весь набор флажков) не наследуется от каждого флажка (type_2). Другой вопрос: как установить оба? Поскольку нельзя вкладывать formRow(...) и formMultiCheckbox(...) друг в друга... - person automatix; 11.04.2013
comment
@automatix, вы пытались установить параметр label_position? - person Sam; 11.04.2013