我不明白为什么这个带有 value=0 的复选框被选中,populate()
而没有关于这个复选框的数据被传递......
我的表单元素:
$this->addElement('multiCheckbox', 'etoiles', array(
'filters' => array('Int'),
'separator' => '',
'label_placement' => 'prepend',
'label_class' => 'caseacocher',
'decorators' => $decorator_chain,
));
$listeEtoiles = array(
'0' =>'Sans étoiles',
'1' => '1 étoile"',
'2' => '2 étoiles',
'3' => '3 étoiles',
'4' => '4 étoiles',
'5' => '5 étoiles',
) ;
$this->getElement('etoiles')->addMultiOptions($listeEtoiles) ;
我如何将表单填充到我的控制器中:
$this->view->searchForm->populate($this->getRequest()->getPost()) ;
倾倒时我得到的$this->getRequest()->getPost('etoiles')
:NULL
我的复选框得到了什么:
<input id="etoiles-0" type="checkbox" checked="checked" value="0" name="etoiles[]">
我不明白。怎么可能选中这个复选框,而没有关于etoiles[]
??的数据?我刚刚发现我的“Int”过滤器与它有关。我应该删除它吗?如果我想保留这个 Int 过滤器怎么办?
没有验证器。我应该添加一些吗?InArray 验证器呢?我的 values 数组使用字符串索引,因为我认为 $_POST 数据是作为字符串传递的。这是一个错误吗?
任何评论或帮助将不胜感激:)