2011-06-02 85 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在检查长度之前将变量转换为字符串,但验证可能不是