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

[讨论/交流] CI表单验证的回调函数

[复制链接]
发表于 2011-11-7 14:50:17 | 显示全部楼层 |阅读模式
每次写表单验证的时候要自己写回调函数..但是很多控制器用的有时候是同一个函数...有没有什么方法能将回调函数弄到一个控制器里面...直接调用
 楼主| 发表于 2011-11-7 14:52:15 | 显示全部楼层
$config = array(
        'signup' => array(
                array(
                        'field' => 'title',
                        'label' => '标题',
                        'rules' => 'callback_null_check'
                ),
                array(
                        'field' => 'neirong',
                        'label' => '内容',
                        'rules' => 'callback_null_check'
                 )
        )
);

public function null_check($str){
                if(empty($str)){
                        echo '1'.$str;
                        $this->form_validation->set_message('null_check', '%s不能为空');
                        return FALSE;
                }
                else{
                        echo '2'.$str;
                        return TRUE;
                }
        }

if($this->form_validation->run('signup')==TRUE){
                        $date = array(
                                'title' =>$this->input->post('title')
                                ,'neirong' =>$this->input->post('neirong')
                                ,'datetime' => time()
                        );
                        $this->mlyb->insert('lyb',$date);
                }
 楼主| 发表于 2011-11-7 14:56:35 | 显示全部楼层
我开始想过把这个回调函数写到一个控制器里面来调用...但是貌似ci是在执行run()方法的时候自己调用了当前控制器的回调函数...所以不晓得应该怎么处理了
发表于 2011-11-8 02:56:53 | 显示全部楼层
自定义的回调函数的依赖性比较强,比如验证Email是否已经注册,因此一般不会同时出现在多个控制器中。你代码中提到的NULL验证其实是一种通用的验证方法,不需要写自定义函数,只需要使用required验证即可
$this->form_validation->set_rules('title', '标题', 'required');
$this->form_validation->set_rules('neirong', '内容', 'required');
LZ应该把系统已有的验证方法都使用熟悉。
发表于 2011-11-8 15:28:40 | 显示全部楼层
关于回调函数的调用可以参考下这个。
http://blog.csdn.net/treesky/article/details/6948077
 楼主| 发表于 2011-11-9 10:42:39 | 显示全部楼层
我上面写的NULL只是用个例子...比如我每个的控制的函数都会用到同一类型的自定义的验证...类似自带的验证那样..我应该怎么弄?
 楼主| 发表于 2011-11-9 10:46:56 | 显示全部楼层
烟头上的探戈 发表于 2011-11-8 15:28
关于回调函数的调用可以参考下这个。
http://blog.csdn.net/treesky/article/details/6948077 ...

扩展确实可以用...也是我现在唯一觉得能用的一种方法,,,谢谢拉

本版积分规则