will 发表于 2009-4-22 23:05:37

表单验证规则如何更灵活

我把我的各个表单提交验证规则写在了application/config/form_validation.php,但是发现各个Sets的规则有很多类似,比如管理人姓名和客户姓名其实判断是一样的,但是各个Sets又有组合的不同,比如这个表单是姓名和电话,那个表单是姓名和地址。有没有更灵活的写法,可以不必再规则里复制来复制去?$config = array(
               'signup' => array(
                                    array(
                                          'field' => 'username',
                                          'label' => 'Username',
                                          'rules' => 'required'
                                       ),
                                    array(
                                          'field' => 'password',
                                          'label' => 'Password',
                                          'rules' => 'required'
                                       ),
                                    array(
                                          'field' => 'passconf',
                                          'label' => 'PasswordConfirmation',
                                          'rules' => 'required'
                                       ),
                                    array(
                                          'field' => 'email',
                                          'label' => 'Email',
                                          'rules' => 'required'
                                       )
                                    ),
               'email' => array(
                                     array(
                                          'field' => 'email',
                                          'label' => 'Email',
                                          'rules' => 'required'
                                        )
                                    array(
                                          'field' => 'name',
                                          'label' => 'Name',
                                          'rules' => 'required|alpha'
                                       ),
                                    array(
                                          'field' => 'title',
                                          'label' => 'Title',
                                          'rules' => 'required'
                                       ),
                                    array(
                                          'field' => 'message',
                                          'label' => 'MessageBody',
                                          'rules' => 'required'
                                       )
                                    )                        
               );

Hex 发表于 2009-4-22 23:34:31

就目前的验证类来说,只能是这么写了,除非你自己进行扩展。

visvoy 发表于 2009-4-23 17:25:13

试试模板方法模式,把通用的验证规则放在超类,不同的规则放在实现里面,
不过这样做感觉更麻烦,还不如个数组方便咧
页: [1]
查看完整版本: 表单验证规则如何更灵活