You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP出现Call to a member function generate() on null报错求助

问题根因

你定义的ControllerMain子类重写了父类Core\Controller的构造方法,却没有主动调用父类的构造逻辑,父类构造中初始化$view属性的代码没有执行,导致调用$this->view->generate()时$this->view为null,触发报错。

修复方案

修改ControllerMain.php的构造方法,主动调用父类构造即可:

<?php

namespace App\Controllers;

use App\Models\Users;
use Core\Controller;

class ControllerMain extends Controller
{
    public function __construct()
    {
        // 调用父类构造完成$view初始化
        parent::__construct();
        $this->model = new Users();
    }

    public function action_index()
    {
        $this->view->generate('general_view.php');
    }
}
补充说明

PHP类继承规则中,子类重写父类方法(包括构造方法)后,不会默认执行父类同名方法的逻辑,若需要保留父类原有能力,需要手动通过parent::方法名()的形式调用父类对应方法。

内容的提问来源于stack exchange,提问作者Данил Самойленко

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:54:00