2013-05-13 78 views
1

我試圖建立在Zend框架2.多個表格的形式我以HTML輸入數組例如屬於表「頁」看起來像是一個場分離領域開發的單一形式輸入過濾器Zend Framework 2中的多表格形式?

$this->add(array(
      'name' => 'pages[title]', 
      'attributes' => array(
       'type' => 'text', 
       'id' => 'title' 
      ), 
      'options' => array(
       'label' => 'Title', 
      ), 
     )); 

但其過濾器是

$inputFilter->add($factory->createInput(array(
         'name' => 'title', 
         'required' => true, 
         'filters' => array(
          array('name' => 'StripTags'), 
          array('name' => 'StringTrim'), 
         ), 
         'validators' => array(
          array(
           'name' => 'NotEmpty', 
          ), 
         ), 
      ))); 

背後改變名稱的原因是,我通過一步像下面

$form->setData($this->request->getPost()->pages); 
在我的控制器分配相應的值驗證場階

獲取消息數組時發生此問題。表單isValid()函數工作正常,但在無效輸入的情況下返回空數組。我怎樣才能得到消息?


在更深的挖掘我已經發現,過濾器返回的消息,但是當形成通過過濾器和元素的名稱是映射的錯誤信息和我使用不同的名稱,它是無法映射......拒絕工作圍繞這個

而且你問我之前分配相同的名稱,形成元件和過濾元件將不會工作,因爲形式不能因爲要求頁[標題]指定數據元素也不會收到名頁[標題]而是將收到的

回答

1

我會採取另一種方法頁面陣列中的任何輸入,讓你的名字簡單,無需添加數組名稱表示法。

,那麼你可以通過使用驗證組和字段集驗證不同的步驟。

http://framework.zend.com/manual/2.0/en/modules/zend.form.quick-start.html#validation-groups

如果你能提供有關你想實現它會更容易迴應什麼的更多細節。

+0

在數組表示法中設置名稱的原因是根據它們所屬的數據庫表執行輸入的邏輯分組......您可以說我正在嘗試實施yii方法 – 2013-05-13 14:11:32

+0

@UmairAbid,I想你錯過了點,安德魯的決策,字段集其實並導致使用數組構造形式,按鍵是字段集的名稱,它的元素是內,例如一個名爲'具有字段名table1'字段集字段名'column1'會導致html中的'。 – Crisp 2013-05-14 03:57:34

+0

這個想法是將表單分隔成可以綁定到不同對象的字段集,對鏈接有一個很好的閱讀;-) – Andrew 2013-05-14 07:20:09

相關問題