用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3939|回复: 5
收起左侧

[讨论/交流] 关于 hex 的hmvc echo validation_errors() 为空字符串的问题

[复制链接]
发表于 2013-2-26 16:09:12 | 显示全部楼层 |阅读模式
本帖最后由 feizhoulv 于 2013-3-5 11:04 编辑

症状:

在 hex hmvc的 【module/controller/】  目录中控制器里头 使用:
$this->load->library('form_validation');
if($this->form_validation->run() == FALSE){
        echo validation_errors();            // 此处 总是输出 '' 空字符串。
}

注:在普通controller中使用可正常显示错误


原因:
在form_helper.php( 大约1038行)

if (FALSE !== ($object = $CI->load->is_loaded('form_validation')))   // 显示form_validation未加载,啥子情况?
{
                if ( ! isset($CI->$object) OR ! is_object($CI->$object))   
                {
                        return $return;
                }

        return $CI->$object;
}

实际上, form_validation 已经加载了, 自行var_dump($this )  // 还是var_dump($this->load) ,忘了 。。。

个人猜测:
是变量使用范围的问题。(未验证)


临时解决方法:

在autoload 文件中添加 form_validation
$autoload['libraries'] = array('database', 'session', 'form_validation');


希望 hex 抽时间确认一下, 是不是真有这个问题, 还是其他原因。


发表于 2013-2-27 20:15:41 | 显示全部楼层
顶上去。。
发表于 2013-4-18 10:43:32 | 显示全部楼层
确实有这个问题,因为我设置module里装载的类库,是和CI原有控制器里装载的类库不冲突,也就是 module 是完全和 CI 隔离的。
这个要解决,我觉得应该是扩展下表单验证类。
发表于 2013-7-4 08:01:10 | 显示全部楼层
Hex 发表于 2013-4-18 10:43
确实有这个问题,因为我设置module里装载的类库,是和CI原有控制器里装载的类库不冲突,也就是 module 是完 ...

module类库和CI隔绝有什么好处?为什么不直接用CI的类库?
发表于 2013-7-4 18:03:35 | 显示全部楼层
kinwyb 发表于 2013-7-4 08:01
module类库和CI隔绝有什么好处?为什么不直接用CI的类库?

我认为的好处,就是解耦,让module和系统完全独立。
当然,这个可能不适合所有场合,属于产品需求问题,可以讨论,呵呵

发表于 2014-9-10 11:13:30 | 显示全部楼层
頂上去....我也遇到这个问题...
有什么好的办法呢?
我在autoload  加载了 都是空白.

本版积分规则