Редактировать отдельные радиокнопки в скрипте Zend. - PullRequest
1 голос
/ 18 октября 2010

У меня есть Zend-форма, которая использует скрипт вида.Я хочу получить доступ к отдельным элементам переключателя, но не знаю, как это сделать.Прямо сейчас я просто распечатываю их все, используя:

echo $this->element->getElement('myRadio');

Это распечатывает их все по вертикали.Мне нужно немного больше контроля.Мне нужно иметь возможность печатать первые 5 вариантов в одном столбце, а затем следующие 5 во втором столбце.

Ответы [ 2 ]

4 голосов
/ 04 ноября 2010

У меня та же проблема.Я не нашел хорошего способа сделать это (около 1.10.8)

Мэттью Вейер О'Финни дал несколько советов на этой странице:

http://framework.zend.com/issues/browse/ZF-2977

Но я считаю такой подход громоздким на практике.У оригинального плаката на этом билете была хорошая идея, и я думаю, что в конечном итоге они должны включить какой-то хороший способ сделать это в том же духе.

Но так как лучшего способа сейчас нет, я просто следую совету Мэтью.на данный момент.

Для моей формы, над которой я работал, чтобы вывести только одну радиокнопку из группы, я должен был сделать это:

В моем классе формы :

$radio = new Zend_Form_Element_Radio('MYRADIO');
$radio->addMultiOption('OPTION1', 'Option One')
      ->addMultiOption('OPTION2', 'Option Two');

$this->addElement($radio);

В моем сценарии просмотра просто рендеринг OPTION1 :

echo $this->formRadio(
    $this->form->MYRADIO->getFullyQualifiedName(),
    $this->form->MYRADIO->getValue(),
    null,
    array('OPTION1' => $this->form->MYRADIO->getMultiOption('OPTION1'))
);

, который будет визуализировать элемент <input type="radio" /> и связанный <label>,Никакие другие декораторы не будут визуализироваться, что является проблемой.

В вашем случае вы, вероятно, захотите визуализировать ваши радиоэлементы и другие элементы, используя помощник вида ViewScript - так что вы можете выровнять все элементысреди вашей собственной разметки таблицы, как вы описали.

1 голос
/ 20 октября 2010

Понял это тоже. Просто используйте

$this->element->getElment('myRadio')->getMultiOptions();

и вернет массив опций ключ / значение.

...