2013-08-21 190 views
0

我在Zend框架定义字段集为形式2.验证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。不适用于其他领域。

我已经writen函数..

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

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

+0

您需要为每个单元提供一个InputFilter。即使这个元素的InputFilter是一个空数组!在你的情况下,明确指出它不是必需的,你会'allow_empty'值 – Sam

+0

你可以给我使用上述代码的例子吗?我的意思是如何写它。 – user231791

+0

name => [required:true],streetnumber => [required:false,allow_empty:true],streetbla => [required:false,allow_empty:true] – Sam

回答

0

在Zend的2,在 “输入过滤器” 的作品更像是在 “严格” 的模式。

即它需要您指定InputFilter中提到的元素是否应将'required'值设置为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:' 
     ) 
));