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,提问作者Данил Самойленко
相关产品推荐
相关产品推荐

