编码点火器验证开机自检和阵列数据



我正在尝试验证两个数组

$this->form_validation->set_data();

和开机自检数据

$this->form_validation->set_rules();

在相同的方法中...

当尝试在我的控制器中使用这两种验证类型时,数组验证似乎正在从 POST 字段中删除所有数据。我正在使用JS抓取订单行项目并将它们作为JSON发送并解码(从不是表单一部分的表中,但值被添加到隐藏的表单字段中以使用poststill抓取),以及客户详细信息添加到表单本身。

遇到的问题是我编写的每个验证(POST 和 Array)都可以独立工作,但是当尝试同时运行两者时,在页面上提交 POST 数据(使用 $this->form_validation->set_rules() 进行验证)正在丢失......

由于隐藏字段的验证方式不同,因此将保留数据...

任何在查找后需要知道这一点的人(甚至在发布问题之前就花了很长时间)

对于您设置的每个验证组,必须先使用 $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 将覆盖您在设置新组时所做的任何现有验证(即使尝试将它们作为单独的数组/组一起运行)。

最新更新