Php 如何使用codeigniter在单个文件中分离回调逻辑?
我使用config.php来存储所有的form_验证规则……但是我也想将回调函数存储在一个文件中,我如何才能做到这一点?有什么想法吗?谢谢你 现在我的文件是这样的: 用户控制器Php 如何使用codeigniter在单个文件中分离回调逻辑?,php,codeigniter,Php,Codeigniter,我使用config.php来存储所有的form_验证规则……但是我也想将回调函数存储在一个文件中,我如何才能做到这一点?有什么想法吗?谢谢你 现在我的文件是这样的: 用户控制器 在user controller下,有许多自定义回调函数是有效的,但我准备移动config.php中的所有规则。我想将_有效回调放在一个类中。多谢各位 在这种情况下,我要做的就是创建一个MY_Form_验证类来扩展CodeIgniter的表单验证。在新创建的MY_Form_验证文件中放置“_valid”检查,并以与默认F
在user controller下,有许多自定义回调函数是有效的,但我准备移动config.php中的所有规则。我想将_有效回调放在一个类中。多谢各位 在这种情况下,我要做的就是创建一个MY_Form_验证类来扩展CodeIgniter的表单验证。在新创建的MY_Form_验证文件中放置“_valid”检查,并以与默认Form_验证规则相同的方式设置“_valid”检查的规则 类似于
class MY_Form_validation extends CI_Form_validation {
function valid_user($str)
{
}
function valid_password($str)
{
}
}
默认情况下,Form_验证库使用它的
$CI
属性查看回调方法是否存在。通常这会查看当前控制器。但是,您可以通过扩展验证类并更改run()
方法来更改此行为
class MY_Form_validation extends CI_Form_validation {
/**
* Support for validation callbacks from any object
*
* @access public
* @param object The object to run callbacks from
* @param string Is there a validation rule for the particular URI being accessed?
* @return bool Validation status
*/
function run($obj = '', $group = '')
{
// Assign the callback object
if (is_object($obj)) $this->CI =& $obj;
// Run the validation as normal
return parent::run($group);
}
}
我们只是重新分配$CI
属性。例如,要使用名为user\u validation
的类的回调,可以执行以下操作:
$callback_class = $this->user_validation;
if ($this->form_validation->run($callback_class)) {}
任何加载的类都可以工作,因此您可以将回调规则存储在模型或库中,只需将要处理回调的对象传递给run()
方法即可
class MY_Form_validation extends CI_Form_validation {
/**
* Support for validation callbacks from any object
*
* @access public
* @param object The object to run callbacks from
* @param string Is there a validation rule for the particular URI being accessed?
* @return bool Validation status
*/
function run($obj = '', $group = '')
{
// Assign the callback object
if (is_object($obj)) $this->CI =& $obj;
// Run the validation as normal
return parent::run($group);
}
}