【问题标题】:What causes Notice: Indirect modification of overloaded property?什么原因导致注意:间接修改重载属性?
【发布时间】:2017-05-03 10:29:18
【问题描述】:

注意:重载属性 ControllerProductProduct::$data 的间接修改在 /home/user/public_html/example.com/catalog/controller/product/product.php 第 57 行没有影响

第 57 行:$this->data['breadcrumbs'][] = array(

$this->data 中删除$this 可以消除错误。

我不完全明白为什么从控制器中取出元素会使代码按应有的方式工作?

【问题讨论】:

标签: php opencart


【解决方案1】:

你用的是什么版本?

PRE v2.0:在这种情况下,更改变量不会“使代码按应有的方式工作*”,您将丢失面包屑。您不应该更改变量 - 它应该保留为 $this->data。您只需要先像这样初始化属性:

$this->data['breadcrumbs'] = array();

然后你可以修改数组。产品控制器应该已经有该行,所以我假设您已经修改了核心代码。

POST v2.0+: 变量确实应该是$data['breadcrumbs'] 而不是类属性。再次,看起来有人修改了核心代码并引入了这个错误。

除非您确定自己在做什么,否则尽量不要修改核心代码。

【讨论】:

  • 感谢您的解释。实际上,面包屑还在。奇怪的是,他们不应该是!是的,我正在修改核心代码,它不是一个实时站点.. 只是想学习。 :)
  • 如果您想了解如何自定义 Opencart,我的建议是学习 vQmod。它允许您对各种位进行非永久性更改,并在不可避免地遇到扩展冲突时使调试更容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 1970-01-01
  • 2012-09-14
  • 2012-03-02
  • 2020-03-24
  • 1970-01-01
相关资源
最近更新 更多