Форма Zend оказывается для меня немного хитрой, даже если я работаю с ней в последнее время ...
У меня есть эта форма, и я пытаюсь динамически создать несколько флажков дляЭто.Это работает хорошо, за исключением того, что я не могу заставить атрибут 'value' измениться.
В моем классе формы Zend у меня есть этот фрагмент ...
// psychotic symptoms
$this->addElement('checkbox', 'psychoticsymptom', array(
'label' => 'psychoticsymptom',
'name' => 'psychoticsymptom',
));
На мой взгляд(phtml) Я называю это так ...
<div class="element">
<?php // Psychotic Symptoms
$Criteria = new Criteria();
$Criteria->add( DictionaryPeer::CATEGORY, 'MAR: Psychotic Symptoms' );
$Criteria->addAscendingOrderByColumn( 'Ordinal' );
$this->PsychoticSymptomsList = DictionaryPeer::doSelect( $Criteria );
foreach( $this->PsychoticSymptomsList as $Symptom ) {
$form->psychoticsymptom->setValue($Symptom->getDictionaryId());
$form->psychoticsymptom->setAttrib('name', $Symptom->getWord());
echo $Symptom->getDictionaryId(); // prove my id is coming through... (it is)
$form->psychoticsymptom->getDecorator('label')->setTag(null);
echo $form->psychoticsymptom->renderViewHelper();
$form->psychoticsymptom->setLabel($Symptom->getWord());
echo $form->psychoticsymptom->renderLabel();
echo '<br />';
}
?>
</div>
Кажется, все работает нормально, за исключением того, что атрибут value в каждом флажке отображает значение '1'.Я попытался переместить строку 'setValue' в несколько разных позиций, чтобы установить значение до визуализации элемента формы, но мне не повезло заставить это работать.Это стоит каких-то усилий для меня, потому что мне нужно выполнять одинаковые операции во многих областях моего приложения.Я бы тоже сделал это немного по-другому, но я перефакторинг другого приложения и пытаюсь сохранить некоторые вещи без изменений (например, базу данных).
Любая помощь очень ценится Спасибо