Codeigniter Datamapper ORM php 7静态问题

时间:2017-06-12 02:29:47

标签: codeigniter orm datamapper

当我将服务器升级到php7 codeigniter时,特别是datamapper ORM给了我这个错误......

  

消息:访问静态属性DataMapper :: $ config为非静态
  文件名:libraries / datamapper.php行号:6474

有问题的功能是......

protected function _dmz_assign_libraries()
{
    static $CI;
    if ($CI || $CI =& get_instance())
    {
        // make sure these exists to not trip __get()
        $this->load = NULL;
        $this->config = NULL;
        $this->lang = NULL;
        // access to the loader
        $this->load =& $CI->load;
        // to the config
        $this->config =& $CI->config;
        // and the language class
        $this->lang =& $CI->lang;
    }
}

3 个答案:

答案 0 :(得分:5)

我有同样的问题。要修复它,请尝试添加新的受保护静态方法

protected static function get_config_object() {
    $CI =& get_instance();

    return $CI->config;
}

然后删除或评论第6474和6481行(在_dmz_assign_libraries中,其中值已分配给$this->config),

最后用$this->config

替换所有来电self::get_config_object()

现在应该正确运行。

答案 1 :(得分:3)

尝试使用@来抑制错误,例如:

@$this->config =& $CI->config;

答案 2 :(得分:0)

我遇到了同样的问题。

修复:用最新版本替换实际的 datamapper.php 库版本。

official library website

中所述

最新的库版本 (1.8.3-dev) - 来源:https://github.com/saekort/datamapper/blob/master/application/libraries/datamapper.php