0

我在 zend 框架 2 中为表单定义了字段集。

$this->add ( array (
            'name' => 'unitnumber',
            'options' => array (
                    'label' => 'Unit Number:'
            )
    ) );

    $this->add ( array (
            'name' => 'streetdirprefix',
            'options' => array (
                    'label' => 'Street Direction Prefix:'
            )
    ) );

    $this->add ( array (
            'name' => 'streetnumber',
            'options' => array (
                    'label' => 'Street Number:'
            )
    ) );

我只想为 unitnumber 设置必填字段。不适用于其他领域。

我写了一个函数..

public function getInputFilterSpecification()
{
    return array (
        'name' => array(
            'required' => true,
        )
    );
}

但是,它要求填写所有字段。任何人都可以帮我解决这个问题。谢谢。

4

2 回答 2

1
$inputFilter->add(array(
            'name'     => 'artist',
            'required' => true,
            'filters'  => array(
                array('name' => 'StripTags'),
                array('name' => 'StringTrim'),
            ),
            'validators' => array(
                array(
                    'name'    => 'StringLength',
                    'options' => array(
                        'encoding' => 'UTF-8',
                        'min'      => 1,
                        'max'      => 100,
                    ),
                ),
            ),
        ));

参考资料

http://framework.zend.com/manual/2.2/en/user-guide/forms-and-actions.html http://framework.zend.com/manual/2.2/en/modules/zend.input-filter .intro.html

于 2013-08-22T06:13:15.347 回答
0

在 Zend 2 中,“InputFilter”更像是在“strict”模式下工作。

即,它要求您指定 InputFilter 中提到的元素是否应具有 TRUE 或 FALSE 的“必需”值。

$this->add ( array (
        'name' => 'unitnumber',
        'required' => true,                   //Code Added
        'options' => array (
                'label' => 'Unit Number:'
        )
));

$this->add ( array (
        'name' => 'streetdirprefix',
        'required' => false,                   //Code Added
        'options' => array (
                'label' => 'Street Direction Prefix:'
        )
));

$this->add ( array (
        'name' => 'streetnumber',
        'required' => false,                   //Code Added
        'options' => array (
                'label' => 'Street Number:'
        )
));
于 2014-04-25T12:11:14.847 回答