所以我想要的是在我的表单中验证我的 Checkbox 并检查它是否已经过检查,所以我应该将其保存为1在我的数据库中,否则为0,如下所示:
$this->add(array(
'name' => 'publication',
'type' => 'Zend\Form\Element\Checkbox',
'options' => array(
'checked_value' => 1,
'unchecked_value' => 0,
),
));
但是当我尝试在我的数据库中得到Null !!,有关详细信息,我会写一些代码,
这是我的观点:
<label>Publication:</label>
<?php
echo $this->formInput($form->get('publication'));
?>
这是我的实体:
/**
* @ORM\Column(name="publication", type="boolean")
*/
protected $publication;
/**
* Set publication
*
* @param boolean $publication
* @return Article
*/
public function setPublication($publication)
{
$this->publication = $publication;
return $this;
}
/**
* Get publication
*
* @return boolean
*/
public function getPublication()
{
return $this->publication;
}
public function exchangeArray($data)
{
$this->publication = (isset($data['publication'])) ? $data['publication'] : null;
}
public function getInputFilter()
{
if (!$this->inputFilter) {
$inputFilter = new InputFilter();
$inputFilter->add(array(
'name' => 'publication',
'required' => false,
));
所以,如果有人有任何解决方案,我将非常感激:)
答案 0 :(得分:4)
如果未勾选复选框,则不会包含在帖子中。在您的exchangeArray中,在这种情况下您将其设置为null。