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

在进行Ecmall二次开发过程中,访问特定控制器时出现致命错误。通过排除多种可能性后发现,问题根源在于文件编码问题,最终通过重建文件解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做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文件夹下建立相应的文件,我也试过了,问题依然存在。

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT界鸟叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值