linde 发表于 2010-3-28 22:38:08

如何退出控制器中某一方法?

刚刚接触CI一周时间,周末的时候才认真的读了一下使用手册。
今天开始用CI做一些小东西。

可能帖子的标题表达得不太清楚,

是这样的。

我现在有一个控制器User其中有一个方法CheckLogin
这个方法中使用了CI的验证库,大致代码如下


function CheckLogin(){
      $this->load->library('form_validation');
      $valiStr = 'trim|required|xss_clean|min_length|max_length';
      $this->form_validation->set_rules('UserName', '用户名', $valiStr);
      $this->form_validation->set_rules('Password', '密码', $valiStr);


      //开始校验表单
      if($this->form_validation->run() == FALSE){
            $this->load->view('login_view');
      }
         //问题就在这里,如果上面表单校验失败的话,还回继续网下执行。
      //校验用户是否存在数据库中
……

}


如上所示,如果表单校验失败,我想跳出整个CheckLogin()方法。但是程序却执行了下面‘检查用户是否存在数据库中’的代码。
请问各位大侠用什么方法可以跳出整个代码。

ps:我不想使用 if(){}else{}等结构,我还想在校验表单前检查验证码。,如果使用if()else{} 就会嵌套很多,以后维护不方便。

先在这里感谢各位大侠了。{:3_64:}

visvoy 发表于 2010-3-28 23:03:03

set_rules()用自定义函数检测验证码,详细请看手册form_validation部分

linde 发表于 2010-3-28 23:16:55

感谢版主大大的回复,

我先研究一下~~。回调函数

linde 发表于 2010-3-28 23:38:51

我将验证规则都配置了config/form_validation.php中。应该如何配置回调?

visvoy 发表于 2010-3-29 00:14:38

请仔细看手册,你的问题在手册里可以找到完整答案

linde 发表于 2010-3-29 00:27:55

本帖最后由 linde 于 2010-3-29 00:34 编辑

感谢斑竹大大如此晚都还回答我的问题~~

出现了新的问题,

验证时提示
Unable to access an error message corresponding to your field name

visvoy 发表于 2010-3-29 02:53:20

再说次,请详细看手册,在手册页面搜索“设置错误信息”
看到一半就不看了,写程序处处撞墙

Hex 发表于 2010-3-29 03:17:33

请楼主仔细看手册。
我帮楼主找来了链接 http://codeigniter.org.cn/user_guide/libraries/form_validation.html#settingerrors

qq123 发表于 2010-3-29 09:06:19

if($this->form_validation->run() == FALSE){
            $this->load->view('login_view');
            //在下面加return 就行了
            return ;
}

baiyuxiong 发表于 2010-3-29 09:37:16

看这个:
http://baiyuxiong.com/article/116.htm
页: [1] 2
查看完整版本: 如何退出控制器中某一方法?