对单个请求多次运行验证


Running validation multiple times on single request

在我的页面上,我有一个规则的表单,在form_validate .php文件中定义了一些验证规则。还定义了一些自定义验证回调。一切正常。

可以在excel文件中提供相同的输入,其中单行包含表单可以捕获的相同数据。我想使用相同的规则来验证多行,一个接一个。

在我从电子表格中读取一行之后,我用在我的webform中定义的相同的键填充$_POST数组。然后调用相应的验证规则:

if($this->form_validation->run('item/add') == FALSE) ...

问题是,这只适用于第一行。对于第二行,一些验证规则不会被触发(例如基本的"required"规则)。此外,如果单个行验证失败,错误将被记住,并且以后所有对$this->form_validation->run('item/add')的调用都会得到相同的错误消息,即使当前行是有效的。

我尝试通过调用以下代码(没有运气)重置验证:

$this->form_validation = new CI_Form_validation();

任何想法?

编辑:我明白了。

我下载了CI表单验证库并看了一下,我不使用Code Igniter,但我的猜测是,除了做

$this->form_validation = new CI_Form_validation();

您还必须运行

$this->form_validation->set_rules()

在循环的每次迭代中。否则,新类将不会有任何分配给它的验证规则。