为什么我不能使用vqmod在OpenCart中的控制器中使用__construct方法

时间:2014-01-09 12:41:22

标签: php opencart

我尝试将一个空的__construct方法添加到模块控制器。

致命错误:在第16行的/var/www/rodebutik.dk/public_html/wb/vqmod/vqcache/vq2-system_engine_controller.php中调用非对象的成员函数get()

第16行:

public function __get($key) {
    return $this->registry->get($key);
}

3 个答案:

答案 0 :(得分:7)

最可能的解释:原始构造函数正在设置$this->registry对象。您将覆盖构造函数,该构造函数现在不再设置该对象。因此:当代码尝试使用不存在的预期对象时,您会出错。

如果覆盖构造函数,则还应该/需要调用原始构造函数:

public function __construct(...) {
    parent::__construct(...);

    // new code
}

答案 1 :(得分:2)

您可以像这样在控制器或模型中创建构造函数。

class ModelMyModel extends Model {
   public function __construct($params) {
      parent::__construct($params);
   }
}

答案 2 :(得分:0)

您可以使用这样的构造函数,也可以通过传递参数来使用与Model相同的构造函数。

class ControllerCommonDashboard extends Controller {

    public function __construct($params) {
        parent::__construct($params);
    }
}