zf2 ZendForm中的复选框创建失败,带有数组表示法

时间:2013-02-27 16:19:57

标签: zend-form zend-framework2

我正在创建一个表单并添加一个带ZF2的复选框,但由于某种原因,当我使用数组表示法时,选项不会被发送。

所以这个:

class PageForm extends Form
{
  public function __construct($name = null)
  {
$checkbox = new Element\Checkbox('system');
    $checkbox   ->setLabel('System Page')
                ->setUseHiddenElement(true)
                ->setCheckedValue("1")
                ->setUncheckedValue("0");


    $this->add($checkbox);
}
}

正常工作, 但是这个:

     class PageForm extends Form
    {
      public function __construct($name = null)
      {
   $this->add(array(
             'type' => 'Checkbox',
             'name' => 'checkbox',
             'options' => array(
                     'label' => 'A checkbox',
                     'use_hidden_element' => true,
                     'checked_value' => 'good',
                     'unchecked_value' => 'bad'
             )
    }
    }

创建复选框但没有选中/未选中的值,我想知道我是做错了什么,还是错过了一步? (这个例子直接来自文档)

这是视图中的代码:

$form = $this->form;
$form->setAttribute('action', $this->url('page', array('action' => 'add')));
$form->prepare();
echo $this->form()->openTag($form);
echo $this->formCollection($form);
echo $this->form()->closeTag();

由于

1 个答案:

答案 0 :(得分:1)

为什么不使用Multicheckbox?

 $multiCheckbox = new Element\MultiCheckbox('multi-checkbox');
 $multiCheckbox->setLabel('What do you like ?');
 $multiCheckbox->setValueOptions(array(
         array(
                 '0' => 'Apple',
                 '1' => 'Orange',
                 '2' => 'Lemon'
         )
 ));
 $form = new Form('my-form');
 $form->add($multiCheckbox);