我正在尝试验证两个数组
$this->form_validation->set_data();
和POST数据
$this->form_validation->set_rules();
使用相同的方法...
尝试在我的控制器中使用这两种验证类型时,似乎数组验证正在从POST字段中删除所有数据。我正在使用JS抓取订单行项目并将它们作为JSON和解码发送(从不是表单一部分的表中,但是将值添加到隐藏的表单字段以使用post仍然获取),并添加了客户详细信息在表格本身内。
我遇到的问题是我编写的每个验证(POST和数组)都可以独立完成,但是当尝试同时运行时,在页面上提交POST数据(通过$this->form_validation->set_rules()
进行验证)正在丢失。
由于隐藏字段未以相同方式验证,因此数据将被保留...
答案 0 :(得分:0)
任何人在查找之后都需要知道这一点(在发布问题之前花了这么长时间)
对于您设置的每个验证组,您必须先使用$this->form_validation->run()
运行验证,然后再转到下一个组/方法。
要验证POST数据,请创建所有规则,然后立即运行:
// Order Post Validations
$this->form_validation->set_rules("firstname", "First Name", "trim|required");
$this->form_validation->set_rules("lastname", "Last Name", "trim|required");
//run this section
$this->form_validation->run();
然后继续,
$this->form_validation->set_data($ValidationData);
$this->form_validation->set_rules($ValidationRules);
//run this section
$this->form_validation->run();
结果CI将覆盖您在设置新组时所做的任何现有验证(即使尝试将它们作为单独的阵列/组一起运行)。