如何在Zend Framework 2中验证Checkbox?

时间:2014-03-01 11:41:20

标签: php zend-framework zend-framework2 zend-form

所以我想要的是在我的表单中验证我的 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,
        ));

所以,如果有人有任何解决方案,我将非常感激:)

1 个答案:

答案 0 :(得分:4)

如果未勾选复选框,则不会包含在帖子中。在您的exchangeArray中,在这种情况下您将其设置为null。