gpt4 book ai didi

php - 库中的 CodeIgniter 验证不接受回调

转载 作者:可可西里 更新时间:2023-10-31 23:11:52 24 4
gpt4 key购买 nike

我的问题如下:我正在编写一个登录库。这个库有一个函数 _validation() 并且它使用验证库来验证数据。使用正常的验证方法它工作得很好,但使用回调函数就不起作用。它没有被调用。

我是这样调用它的。

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

函数名称是_check_user,它使用用户名_check_user($user)。该函数本身工作正常,我也可以在类中调用它 ($this->_check_user('username')) 并获得有效结果。

我猜,这可能是个问题,因为我没有在 Controller 中工作,所以我有一个 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;
}

谢谢你的帮助。

关于php - 库中的 CodeIgniter 验证不接受回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com