首页 > 解决方案 > 大表单的 Codeigniter 表单验证(28 个字段)

问题描述

我的表格包含 28 个字段(客户要求)。我正在使用 Codeigniter 框架。我必须输入 28 行代码来进行表单验证。还有什么我可以做的,比如为表单验证创建助手。任何帮助,将不胜感激。谢谢

标签: phpcodeigniter

解决方案


这里没有标准或正确的方法,您最好的选择是为验证数组中的每个输入创建验证规则,也许您可​​以检查以对其中一些进行分类,例如“fname,lname, ...”那些具有相同的验证,但这不会为您节省任何只是增加开销的东西。

但也许你最好的办法是base_controller像这样创建一个函数:

    function set_validation_rules()
    {
        $this->load->library('form_validation');
        $config = array(
            array(
                'field' => 'firstname',
                'label' => $this->lang->line($line.'firstname'),
                'rules' => 'trim|required|alpha|min_length[3]|max_length[15]'
            ),
            array(
                'field' => 'lastname',
                'label' => $this->lang->line($line.'lastname'),
                'rules' => 'trim|required|alpha|min_length[3]|max_length[15]'
            ),
            array(
                'field' => 'password',
                'label' => $this->lang->line($line.'password'),
                'rules' => 'trim|required|min_length['.$min.']|max_length['.$max.']'
            ),
            array(
                'field' => 'passconf',
                'label' => $this->lang->line($line.'password_confirm'),
                'rules' => 'trim|matches[password]'
            )
        );
        $this->form_validation->set_rules($config);
    }

或按照您的建议创建一个助手,但最重要的步骤是为自己制定一个 var/inputs 命名约定并养成习惯,以便来自不同视图的输入具有相同的名称,并将所有输入传递给此函数以在修改后进行验证通过向它添加一个 switch case,这样每个名字都有自己的规则,每个密码都有自己的规则,等等,希望你明白了。


推荐阅读