Zend框架 - 有多个复选框的验证器吗?

时间:2011-08-20 11:26:29

标签: zend-framework

我想要2个复选框,用于是/否答案,并要求勾选任何一个。是否有一个“组”复选框的内置验证器?

2 个答案:

答案 0 :(得分:3)

据我所知,没有。

但你可以在你的表格中做这样的事情。在表单类中手动扩展isValid方法,以检查至少checkbox_1或checkbox_2是否为票证。你应该做Adrian所说的用无线电代替。但原则是一样的。

<?php 

class App_Your_Form extends Zend_Form
{
    public function init()
    {
         ... Your stuff ...
    }

    public function isValid($data)
    {
        $isValid = parent::isValid($data);

        if ($this->getValue('checkbox_1') != '1' && $this->getValue('checkbox_2') != '1') {
             $this->getElement('checkbox_1')->setErrors(array('You  have to set check at least chexbkox_1 or checkbox 2'));
             $isValid = false;
        }

        return $isValid;
    }
}

答案 1 :(得分:3)

如果您使用无线电元素,则只需setRequired(true)。同样适用于MultiCheckbox Zend元素。

$element->setRequired(true);