2011-06-02 87 views
2

我有這樣的代碼:笨MIN_LENGTH []不工作

$this->form_validation->set_rules('quadra_numero', 'Quadra número', 'required|trim|numeric|xss_clean|min_length[3]|max_length[3]|callback_valida_quadra_setor'); 

max_length[3]作品,但不是min_length[3]

我檢查了返回的值與strlen($quadra_numero)它返回我2個字符,但驗證似乎忽略它。

在我的表單中,我有數字091,在我的數據庫中,它是一個VARCHAR,以保持 必需的0。

如果我發佈0912,它將返回max_length的錯誤,但如果我將其更改爲91將通過驗證。

如果我發佈09它會工作,只有0(零)被刪除它將無法正常工作。

任何想法?

在此先感謝您的幫助。

- EDIT 我試圖使用exact_length [8]並得到了相同的結果。問題在於0(零)。

+0

CI Forum的另一位用戶告訴我「我沒有檢查錯誤的最小和最大長度,但有一條規則你可以使用exact_length。「但它沒有工作= /我想我將不得不檢查數字長度,並添加一個0(零)如果長度等於2 ....仍在等待幫助 – Gerep 2011-06-02 19:05:46

+1

什麼是回調?你有沒有嘗試過使用*只有最小/最大規則? – 2011-06-02 20:01:22

回答

2

只是乍一看,你可能需要在發送之前將強制轉換變量爲一個字符串。

$quadra_numero = (string)$quadra_numero; 

$quadra_numero = strval($quadra_numero); 

,看看是否需要照顧的問題。 strlen在檢查長度之前將變量轉換爲字符串,但驗證可能不是