2013-08-21 146 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:' 
     ) 
));