Zend Form - Как мне удалить метку optgroup - PullRequest
0 голосов
/ 02 апреля 2012

Я знаю, что об этом уже спрашивали, но я просто не могу найти ответ ... или решение.

У меня есть много полей выбора, использующих 'multiselect'.Раскрывающиеся данные заполняются из базы данных, и первое значение в массиве всегда равно «Выбрать один».Это я не могу изменить, я переписываю приложение и вообще не изменяю базу данных.

Все работает просто отлично, но они всегда выдаются в виде тегов 'optgroup' с меткой, которая всегда ставит '0'вверху списка.В ячейках всегда написано «Выбрать один», что замечательно, но когда развернуто, вы видите «0» вверху ... который является атрибутом «label» для тега optgroup.

Я делаю все эточто-то вроде этого ...

$Criteria = new Criteria();
$Criteria->add( DictionaryPeer::CATEGORY, 'Progress Notes: Program Status' );
$Criteria->addAscendingOrderByColumn( 'Ordinal' );
$ProgramStatuses = DictionaryPeer::doSelect($Criteria);

$ProgramStatusList = array();
foreach ($ProgramStatuses as $ProgramStatus) {
    $ProgramStatusList [ $ProgramStatus->getDictionaryID() ] = $ProgramStatus->getWord();
}

$form->programstatus->addMultiOptions( array(
$ProgramStatusList ));

echo $form->programstatus->renderLabel() . $form->programstatus->renderViewHelper();

Я просто хочу удалить '0' только для целей презентации ...

Любая помощь всегда приветствуется ...

Спасибо!

1 Ответ

1 голос
/ 02 апреля 2012

Если вы хотите избавиться от OPTGROUP, вам просто нужно передать простой массив в качестве параметра в addMultiOptions() следующим образом:

$form->programstatus->addMultiOptions($ProgramStatusList);

Потому что если вы передадитеВ многомерном массиве Zend_Form будет косвенно рассматривать каждый индекс родительского массива как группу параметров (с использованием помощника вида FormElement).

...