用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2564|回复: 2
收起左侧

表单验证规则如何更灵活

[复制链接]
发表于 2009-4-22 23:05:37 | 显示全部楼层 |阅读模式
我把我的各个表单提交验证规则写在了application/config/form_validation.php,但是发现各个Sets的规则有很多类似,比如管理人姓名和客户姓名其实判断是一样的,但是各个Sets又有组合的不同,比如这个表单是姓名和电话,那个表单是姓名和地址。有没有更灵活的写法,可以不必再规则里复制来复制去?
PHP复制代码
$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'
                                         )
                                    )                          
               );
复制代码
发表于 2009-4-22 23:34:31 | 显示全部楼层
就目前的验证类来说,只能是这么写了,除非你自己进行扩展。
发表于 2009-4-23 17:25:13 | 显示全部楼层
试试模板方法模式,把通用的验证规则放在超类,不同的规则放在实现里面,
不过这样做感觉更麻烦,还不如个数组方便咧

本版积分规则