Php 为什么可以';我在OpenCart和vqmod中的控制器中使用_构造方法
我试着只向模块控制器添加一个空的Php 为什么可以';我在OpenCart和vqmod中的控制器中使用_构造方法,php,opencart,Php,Opencart,我试着只向模块控制器添加一个空的\u构造方法 致命错误:在第16行的/var/www/rodebutik.dk/public\u html/wb/vqmod/vqcache/vq2-system\u engine\u controller.php中对非对象调用成员函数get() 第16行: public function __get($key) { return $this->registry->get($key); } 最可能的解释是:原始构造函数正在设置$this->r
\u构造方法
致命错误:在第16行的/var/www/rodebutik.dk/public\u html/wb/vqmod/vqcache/vq2-system\u engine\u controller.php中对非对象调用成员函数get()
第16行:
public function __get($key) {
return $this->registry->get($key);
}
最可能的解释是:原始构造函数正在设置$this->registry
对象。您正在重写构造函数,该构造函数现在不再设置该对象。因此:当代码试图使用不存在的预期对象时,会出错
如果重写构造函数,还应/需要调用原始构造函数:
public function __construct(...) {
parent::__construct(...);
// new code
}
最可能的解释是:原始构造函数正在设置$this->registry
对象。您正在重写构造函数,该构造函数现在不再设置该对象。因此:当代码试图使用不存在的预期对象时,会出错
如果重写构造函数,还应/需要调用原始构造函数:
public function __construct(...) {
parent::__construct(...);
// new code
}
您可以这样在控制器或模型中创建构造函数
class ModelMyModel extends Model {
public function __construct($params) {
parent::__construct($params);
}
}
您可以这样在控制器或模型中创建构造函数
class ModelMyModel extends Model {
public function __construct($params) {
parent::__construct($params);
}
}
通过传递参数,您可以像这样使用构造函数,也可以使用同样的构造函数
class ControllerCommonDashboard extends Controller {
public function __construct($params) {
parent::__construct($params);
}
}
通过传递参数,您可以像这样使用构造函数,也可以使用同样的构造函数
class ControllerCommonDashboard extends Controller {
public function __construct($params) {
parent::__construct($params);
}
}
我看不出有任何理由不应该使用\uu construct()
方法。。。请提供代码,一个空的\uu构造()
不能产生这样的错误。我猜注册表实例是通过您正在扩展的对象传递的。当您重新定义并清空构造函数时,它不再被设置-因此出现错误。我看不出有任何理由不应该使用\u construct()
方法。。。请提供代码,一个空的\uu构造()
不能产生这样的错误。我猜注册表实例是通过您正在扩展的对象传递的。当您重新定义并清空构造时,它不再被设置-因此会出现错误。