加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Library中的CodeIgniter验证不接受回调

发布时间:2020-12-13 17:03:43 所属栏目:PHP教程 来源:网络整理
导读:我的问题如下:我正在写一个登录库. 该库有一个函数_validation(),它使用验证库来验证数据. 使用普通的验证方法它可以正常工作,但使用回调函数不起作用.它没有被调用. 我这样称呼它. $this-CI-form_validation-set_rules('user','Username','required|callba
我的问题如下:我正在写一个登录库.
该库有一个函数_validation(),它使用验证库来验证数据.
使用普通的验证方法它可以正常工作,但使用回调函数不起作用.它没有被调用.

我这样称呼它.

$this->CI->form_validation->set_rules('user','Username','required|callback__check_user');

函数名称是_check_user,它使用用户名_check_user($user).
函数本身工作正常,我也可以在类($this-> _check_user(‘username’))中调用它,并带有工作结果.

我猜,可能有一个问题因为我不在控制器中工作所以我有一个CI实例$this-> CI而不仅仅是原始实例$this->

有没有人知道如何解决这个问题?

提前致谢.

解决方法

嘿,我想出了一种对我有用的方法.只需在MY_Form_validation.php中扩展Form_validation库,即可创建自定义验证方法.我认为这是一种干净的方式,它完美无缺.我构建了以下验证方法来检查现有的用户名和密码. $value类似于table_name.fieldname.
我没有设置消息,因此它将使用lang文件中的_exist消息.

/**
 * Exist
 *
 * checks if the entry exists in the database
 * returns a boolean
 *
 * @access  private
 * @param   string
 * @param   field
 * @return  boolean
 */
function _exist($str,$value)
{       
    list($table,$column) = explode('.',$value,2);    
    $query = $this->CI->db->query("SELECT COUNT(*) AS count FROM $table WHERE $column = '$str'");
    $row = $query->row();
    return ($row->count > 0) ? TRUE : FALSE;
}

谢谢你的帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读