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

[已解决] username_check验证错误

[复制链接]
发表于 2017-3-15 19:59:05 | 显示全部楼层 |阅读模式
写了用户名重复验证,但是没有效果
array(
        'field'=>'username',
        'label'=>'用户名',
        'rules'=>'alpha_dash|callback_username_check'
        ),
C:\Users\yje\Desktop\1.png
 楼主| 发表于 2017-3-16 19:14:16 | 显示全部楼层
Hex 发表于 2017-3-16 17:28
控制器里,任何地方都可以调用模型。

在form_validation里写了约束条件,在模型中写了username_check回调函数,然后在控制器中验证约束条件,但是有问题
array(
        'field'=>'username',
        'label'=>'用户名',
        'rules'=>'alpha_dash|callback_username_check'
        ),


// 检测帐号是否存在
        public function username_check()
        {
                $query = $this->db
                ->select('username')
                ->from('user')
                ->where('username',$this->input->post('username'));
                if ($query->num_rows()>0) {       
                        return true;
                }else{
                        return false;
                }
        }
 楼主| 发表于 2017-3-16 13:24:56 | 显示全部楼层
Hex 发表于 2017-3-16 11:34
username_check 这个需要你写一个函数来实现,仔细看看手册。

在控制器中写了username_check函数,但是好像没有进到函数中去,下面是写的那个函数,帮忙看下是不是写错了
// 检测帐号是否存在
        public function username_check()
        {
                $query = $this->db
                ->select('username')
                ->from('user')
                ->where('username',$this->input->post('username'))
                ->get();
                if ($this->db->affected_rows()>0) {       
                        return true;
                }else{
                        return false;
                }
        }
发表于 2017-3-16 22:01:36 | 显示全部楼层
唯~愛羅 发表于 2017-3-16 19:14
在form_validation里写了约束条件,在模型中写了username_check回调函数,然后在控制器中验证约束条件, ...

表单验证类的 callback 不能写到模型里,只能写到控制器里。
建议仔细看手册,不要自己去猜测 CI 的写法,这样学习 CI 效率较低。
 楼主| 发表于 2017-3-15 20:03:12 | 显示全部楼层
页面上一提交就显示(username_check)错误
 楼主| 发表于 2017-3-15 21:14:12 | 显示全部楼层
唯~愛羅 发表于 2017-3-15 20:03
页面上一提交就显示(username_check)错误


 楼主| 发表于 2017-3-16 10:37:48 | 显示全部楼层
有人帮忙看下么?
发表于 2017-3-16 11:01:52 | 显示全部楼层
  wo  hai  mei you  zuo  dao  na  ne .....
发表于 2017-3-16 11:34:17 | 显示全部楼层
username_check 这个需要你写一个函数来实现,仔细看看手册。
发表于 2017-3-16 14:07:52 | 显示全部楼层
唯~愛羅 发表于 2017-3-16 13:24
在控制器中写了username_check函数,但是好像没有进到函数中去,下面是写的那个函数,帮忙看下是不是写错 ...

你用 select 不能用 affected_rows 应该是获取 count,查一下 MYSQL 如何获取 count
 楼主| 发表于 2017-3-16 15:06:46 | 显示全部楼层
Hex 发表于 2017-3-16 14:07
你用 select 不能用 affected_rows 应该是获取 count,查一下 MYSQL 如何获取 count

在form_validation中的约束条件可以直接调用到模型中的函数么?
发表于 2017-3-16 17:28:01 | 显示全部楼层
唯~愛羅 发表于 2017-3-16 15:06
在form_validation中的约束条件可以直接调用到模型中的函数么?

控制器里,任何地方都可以调用模型。

本版积分规则