lzyname 发表于 2009-8-27 21:36:52

表单验证中callback可否再加参数?

$rules['aa'] = 'callback_check'

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

谢谢!!

Hex 发表于 2009-8-28 00:44:25

不能加其他参数。
如果有更多要求,请扩展表单验证类。

Rming 发表于 2013-12-8 18:02:29

本帖最后由 Rming 于 2013-12-8 18:04 编辑

Hex 发表于 2009-8-28 00:44 static/image/common/back.gif
不能加其他参数。
如果有更多要求,请扩展表单验证类。
是可以传递参数的,不过只能是单一变量。

eg.编辑用户信息时,判断用户名是否更改,1、没有更改,2、更改了,新用户名唯一 3、更改了,新用户名不唯一
$user = $this->user_model->get_user_by_id('$id');
$this->form_validation->set_rules('username', '账户名称','required|trim|min_length|max_length|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、、、
页: [1]
查看完整版本: 表单验证中callback可否再加参数?