2013-09-21 32 views
0

是否有人熟悉在工廠模式中使用ZF2正則表達式驗證器?如何在工廠模式中使用ZF2正則表達式驗證器

我已經從各種博客和其他stackoverflow問題採取此代碼,但它似乎並沒有工作。

正則表達式驗證程序的添加會阻止從更新數據庫到我的表單的所有更改 - 所以驗證程序即使在插入數字時也必須失敗。

然而,當我檢查

$form -> getMessages(); 

我得到一個空數組。任何洞察力將不勝感激。

爲了說明我使用了一個非常簡單的正則表達式,據我瞭解,它會阻止任何不是數字的輸入字符。

$inputFilter->add($factory->createInput(array(
      'name'  => 'Number', 
      'required' => true, 
      'filters' => array(
       array('name' => 'StripTags'), 
       array('name' => 'StringTrim'), 
      ), 
      'validators' => array(
       array(
        'name' => 'StringLength', 
        'options' => array(
         'encoding' => 'UTF-8', 
         'max'  => 20, 
        ), 
       ), 
      ), 
      array(
       'name' => 'Regex', 
       'options' => array(
        'pattern' => '/^[0-9]+$', 
        'messages' => array(
         'Invalid input, only 0-9 characters allowed' 
        ), 
       ), 
      ), 
     ))); 

回答

2

一目瞭然,正則表達式驗證應該坐在裏面的「驗證」陣......