如何在Zend表单复选框中设置'value'?

rha*_*g71 3 php zend-framework zend-form

事实证明Zend表格对我来说有点棘手,就像我最近使用它一样......

我有这个表单,我试图动态创建它的几个复选框.它运作正常,除了我似乎无法改变'价值'属性.

在我的Zend表单类中,我有这个片段...

// psychotic symptoms
        $this->addElement('checkbox', 'psychoticsymptom', array(
                'label' => 'psychoticsymptom',
                'name' => 'psychoticsymptom',
        ));
Run Code Online (Sandbox Code Playgroud)

在我看来(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>
Run Code Online (Sandbox Code Playgroud)

一切似乎都运行正常,除了每个复选框的value属性呈现值'1'.我已经尝试将'setValue'行移动到几个不同的位置,以便在表单元素呈现之前设置值,但我没有运气让它工作.值得为我付出任何努力,因为我需要在我的应用程序的许多方面进行相同类型的操作.我也会这样做有点不同,但我正在重新考虑另一个应用程序,并试图保持一些不变的东西(例如数据库).

任何帮助都非常感谢谢谢

jee*_*iya 9

你可以尝试覆盖"checkedValue"和"uncheckedValue".检查此参考

$this->addElement('checkbox', 'psychoticsymptom', array(
                'label' => 'psychoticsymptom',
                'name' => 'psychoticsymptom',
                'checkedValue' => 'checked Value',
                'uncheckedValue' => 'unchecked Value'
        ));
Run Code Online (Sandbox Code Playgroud)