Ecmall 遇到错误Fatal error: Call to a member function get() on a non-object

在做Ecmall二次开发的时候遇到一个很奇葩的问题:

访问别的控制器的时候都没有问题,访问http://db.3322.org/index.php?api=user&act=test_login   user控制器的时候每次都会爆出错误:

Fatal error: Call to a member function get() on a non-object in D:\xampp\htdocs\dabolo\app\frontend.base.php on line 45

查看提示的错误文件的代码:

function display($tpl)
    {
        $cart =& m('cart');
        $this->assign('cart_goods_kinds', $cart->get_kinds(SESS_ID, $this->visitor->get('user_id')));
        /* 新消息 */
        $this->assign('new_message', isset($this->visitor) ? $this->_get_new_message() : '');
        $this->assign('navs', $this->_get_navs());  // 自定义导航
        $this->assign('acc_help', ACC_HELP);        // 帮助中心分类code
        $this->assign('site_title', Conf::get('site_title'));
        $this->assign('site_logo', Conf::get('site_logo'));
        $this->assign('statistics_code', Conf::get('statistics_code')); // 统计代码
        $current_url = explode('/', $_SERVER['REQUEST_URI']);
        $count = count($current_url);
        $this->assign('current_url',  $count > 1 ? $current_url[$count-1] : $_SERVER['REQUEST_URI']);// 用于设置导航状态(以后可能会有问题)
        parent::display($tpl);
    }

红色部分就是错误的地方,可是我都没有调用display()方法,怎么执行到这一步呢?


网上搜索了一下,有人说要在language文件夹下建立相应的文件,我也试过了,问题依然存在。

把所有缓存文件清掉,更改文件名称和控制器名称 ,都没有用。

最后,把原文件删了,重新创建这个文件,问题解决了。

  坑爹,竟然是文件编码的问题,害我郁闷了好几天。

你可能感兴趣的:(开源系统)