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

[已解决] 表单验证中callback可否再加参数?

[复制链接]
发表于 2009-8-27 21:36:52 | 显示全部楼层 |阅读模式
$rules['aa'] = 'callback_check'

可是除了aa,还想在check的时候调用传过来的id参数。请问callback中除了rules那个参数本身之外可否再传递参数?或者还有别的办法吗?

谢谢!!
发表于 2009-8-28 00:44:25 | 显示全部楼层
不能加其他参数。
如果有更多要求,请扩展表单验证类。
发表于 2013-12-8 18:02:29 | 显示全部楼层
本帖最后由 Rming 于 2013-12-8 18:04 编辑
Hex 发表于 2009-8-28 00:44
不能加其他参数。
如果有更多要求,请扩展表单验证类。

是可以传递参数的,不过只能是单一变量。

eg.编辑用户信息时,判断用户名是否更改,1、没有更改,2、更改了,新用户名唯一 3、更改了,新用户名不唯一

PHP复制代码
$user = $this->user_model->get_user_by_id('$id');
$this->form_validation->set_rules('username', '账户名称','required|trim|min_length[2]|max_length[32]|callback_username_edit_check['.$user['username'].']');
function username_edit_check($str,$username{
                if ($str!=$username){
                        if (!$this->form_validation->is_unique($str,'user.username')){
                                 $this->form_validation->set_message('username_edit_check', '账户名称被占用.');
                                 return false;
                        }else{
                                 return $str;
                        }
                }else{
                        return $str;
                }
        }
复制代码


有点类似max_length[32] 那个32、、、

评分

参与人数 1威望 +3 收起 理由
Hex + 3 赞一个!

查看全部评分

本版积分规则