我正在使用Codeigniter和HMVC。 当我验证表单时,我使用解决方案来修复HMVC中的回调问题:
1.Extends CI_Form_validation:
<?php
// application/libraries/My_Form_validation.php
class MY_Form_validation extends CI_Form_validation {
public $CI;
}
?>
类用户扩展MX_Controller {
function __construct() {
parent :: __construct();
$this->load->library('form_validation');
$this->form_validation->CI = & $this;
}
我的问题是:在我的localhost中,一切正常:回调验证正常运行。但是当我在主机上传我的项目时,我执行我的控制器它显示为空白。当我评论该行
时 //$this->form_validation->CI = & $this;
控制器再次正常运行。
你能告诉我怎么解决这个问题吗? 谢谢你的帮助。
答案 0 :(得分:0)
检查错误日志中是否有任何致命错误,您也应该以这种方式扩展表单验证
class MY_Form_validation extends CI_Form_validation {
private $CI
function My_Form_validation($config = array()) {
parent::__construct($config);
$this->CI = &get_instance()
}
//example functions
function my_custom_validation(str){ //or override , for example, required
if($this->CI->method_from_instance()){
return true;
}
return false
}
}
然后像往常一样使用form_validation,但现在你有额外的规则my_custom_validation
编辑:如果您有任何机会并出于某些有线原因想要在库中使用控制器功能(也就是$ this),请将其作为配置传递,一旦您加载库,例如$this->load->library('form_validation', array(('ci'=>$this)
//但我不明白你为什么要这样做。