Notice: 间接修改重载属性是什么原因?
What causes Notice: Indirect modification of overloaded property?
Notice: Indirect modification of overloaded property ControllerProductProduct::$data has no effect in /home/user/public_html/example.com/catalog/controller/product/product.php on line 57
第 57 行:$this->data['breadcrumbs'][] = array(
从 $this->data
中删除 $this
消除了错误。
我不完全理解为什么将元素从控制器中取出会使代码正常工作?
您使用的是什么版本?
PRE v2.0: 在这种情况下,更改变量不会 "make the code work as it should*" 并且您将丢失您的面包屑。您不应该更改变量 - 它应该保留为 $this->data
。您只需要先像这样初始化 属性:
$this->data['breadcrumbs'] = array();
之后就可以修改数组了。产品控制器应该已经有该行,所以我假设您已经修改了核心代码。
POST v2.0+: 变量确实应该是$data['breadcrumbs']
而不是class 属性。同样,看起来有人修改了核心代码并引入了这个错误。
除非您确定自己知道自己在做什么,否则尽量不要修改核心代码。
Notice: Indirect modification of overloaded property ControllerProductProduct::$data has no effect in /home/user/public_html/example.com/catalog/controller/product/product.php on line 57
第 57 行:$this->data['breadcrumbs'][] = array(
从 $this->data
中删除 $this
消除了错误。
我不完全理解为什么将元素从控制器中取出会使代码正常工作?
您使用的是什么版本?
PRE v2.0: 在这种情况下,更改变量不会 "make the code work as it should*" 并且您将丢失您的面包屑。您不应该更改变量 - 它应该保留为 $this->data
。您只需要先像这样初始化 属性:
$this->data['breadcrumbs'] = array();
之后就可以修改数组了。产品控制器应该已经有该行,所以我假设您已经修改了核心代码。
POST v2.0+: 变量确实应该是$data['breadcrumbs']
而不是class 属性。同样,看起来有人修改了核心代码并引入了这个错误。
除非您确定自己知道自己在做什么,否则尽量不要修改核心代码。