Php 使用Zend表单选中复选框

Php 使用Zend表单选中复选框,php,zend-framework,zend-form,zend-form-element,Php,Zend Framework,Zend Form,Zend Form Element,这样就创建了复选框 $is_conveyance_required = new Zend_Form_Element_Checkbox(FORM_CHECKBOX_PREFIX . 'is_conveyance_required', array()); $is_conveyance_required->addDecorators(array( array('HtmlTag', array('tag' => 'label')), array('L

这样就创建了复选框

 $is_conveyance_required = new Zend_Form_Element_Checkbox(FORM_CHECKBOX_PREFIX . 'is_conveyance_required', array());

   $is_conveyance_required->addDecorators(array(
        array('HtmlTag', array('tag' => 'label')),
        array('Label', array('tag' => '')),
   ));

   $is_conveyance_required->setValue(1);
   $is_conveyance_required->setChecked( true );
   $this->addElement($is_conveyance_required);
以及如何进行表单填充

$personal_form->populate($personal_data);
但zend表单未填充复选框

<input type="checkbox" value="1" id="chk_is_conveyance_required" name="chk_is_conveyance_required">


这是$personal_数据阵列img,它根本无法按您所期望的方式运行

从Zend手册:

默认情况下,选中的值为“1”,未选中的值为“0”。你 可以使用setCheckedValue()和指定要使用的值 分别设置setUncheckedValue()访问器。此外,设置 值设置复选框的选中属性。你可以查询这个 使用isChecked()或仅访问属性。使用 setChecked($flag)方法也将设置标志的状态 在元素中设置适当的选中或未选中值。 设置复选框的选中状态时,请使用此方法 元素以确保正确设置值

除了
popuplate()


交叉检查
$personal_data
必须具有与复选框同名的键和值它与复选框同名,但值为1。您可以发布名称吗?我想它一定也有
FORM\u CHECKBOX\u前缀
。它只是chk的前缀“chk\u是必需的”。。。是的,应该有用but@Rikesh问题已更新
if($personal_form->is_conveyance_required->getValue() == 1) {
   $personal_form->is_conveyance_required->setChecked(true);
}