當我在Zend 2.2的選擇元素中添加一個過濾器時遇到問題。當創建一個選擇元件,一個默認的驗證被添加到這些元素:Zend 2 - 選擇元素的默認InArray驗證器會丟失
該元素以在服務器上驗證,如果所選擇的值屬於的值增加一個InArray校驗到它的輸入過濾器規範。
,直到我添加自定義過濾器,該元素能正常工作:
$filter = new Input('element_name');
$filter->setRequired(true);
$this->add($filter);
這Zend的\輸入過濾器\輸入被添加到一個Zend \輸入過濾器\輸入過濾稍後添加到我的形式。從現在開始,默認驗證器丟失。
如何在不丟失默認驗證器的情況下添加過濾器來形成元素?
我錯過了什麼嗎?我不認爲這是默認行爲,因爲每個人都在拼命地詢問如何停用它。甚至有一個屬性可以禁用它('disable_inarray_validator'),但是,我想保留該驗證器而不將所有我選擇框的條目傳遞給我的InputFilter。另外我在Zend 2文檔中找不到任何東西。我想解決方案一定是簡單的。提前致謝。
注意:將InputFilter和InputFilterManager添加到表單時會發生同樣的情況。
很想知道這個問題的答案了。我花了好幾個小時試圖讓這個工作。我嘗試使用表單管理器在我的控制器中獲取表單,而不是直接實例化表單。還嘗試在init()方法中添加我的字段而不是__construct。嘗試以多種方式創建輸入過濾器,在我的輸入過濾器中使用了$ factory-> createInput。也嘗試使用$ form-> setPreferFormInputFilter()方法,但沒有成功。看起來像一個錯誤或我錯過了一些東西。請發帖回答,如果你找到一個 –