【发布时间】:2013-01-13 09:48:36
【问题描述】:
完成
难道没有机会在控制器动作中使用 $this->form_validation->run() 两次吗? CodeIgniter 似乎只验证第一条规则。我想使用 $this->form_validation->run() 两次,因为我需要第二个验证规则的验证值;)。
$this->form_validation->set_rules(...);
if($this->form_validation->run() === true)
{
$value = $this->..._model->get( ...); //use of validated value
$this->form_validation->set_rules(...); //use of $value
if($this->form_validation->run() === true)
{
//...
}
}
【问题讨论】:
-
你真的试过了吗,我看不出它有什么不工作的原因。
-
是 - 第二个验证规则包含“required”和“greater_than”,并且 Post Var 为空。但是 form_validation->run() 返回 true... o.O
-
它有可能保存第一次运行的价值吗?虽然这根本没有意义。请参阅下面的答案,看看这是否有效。
-
嗨,感谢您的帮助 - 我发现了错误。我的规则是:'required|greater_than['。 $val-0.01 .']'。当 CodeIgniter 获得标签值 -0.01 而不是 $val-0.01 的实际结果时,这不起作用。现在验证也工作了两次:)。 Codeigniter 没有任何匹配 >= 的规则,所以我必须进行回调以检查这个?
-
是的,这将是一个回调函数,很高兴它可以工作。
标签: forms codeigniter validation