唯~愛羅 发表于 2017-3-15 19:59:05

username_check验证错误

写了用户名重复验证,但是没有效果
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;
                }
        }

Hex 发表于 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)错误

http://codeigniter.org.cn/forums/data/attachment/album/201703/15/211252megevcn9xmsajqpk.png

唯~愛羅 发表于 2017-3-16 10:37:48

有人帮忙看下么?

Android 发表于 2017-3-16 11:01:52

wohaimei youzuodaonane .....

Hex 发表于 2017-3-16 11:34:17

username_check 这个需要你写一个函数来实现,仔细看看手册。

Hex 发表于 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中的约束条件可以直接调用到模型中的函数么?

Hex 发表于 2017-3-16 17:28:01

唯~愛羅 发表于 2017-3-16 15:06
在form_validation中的约束条件可以直接调用到模型中的函数么?

控制器里,任何地方都可以调用模型。
页: [1] 2
查看完整版本: username_check验证错误