2016-12-18 2 views
0

Примечание: Косвенный модификация перегружен имущества ControllerProductProduct :: $ данных не имеет никакого эффекта в /home/user/public_html/example.com/catalog/controller/product/product.php на линии 57Какие причины Уведомление: косвенная модификация перегруженного имущества?

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

Удаление $this от $this->data устраняет ошибку.

Я не совсем понимаю, почему извлечение элемента из контроллера заставляет код работать так, как должен?

+0

Как создать минимальный, полный и проверенный пример http://stackoverflow.com/help/mcve –

ответ

0

Какая версия вы используете?

PRE v2.0: В этом случае, изменяя переменную не «сделать код работать как надо *» и вы будете пропускать ваши сухари. Вы не должны изменять переменную - ее следует оставить как $this->data. Вам просто нужно сначала инициализировать недвижимость следующим образом:

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

После этого вы можете изменить массив. Контроллер продукта должен уже иметь эту строку, поэтому я предполагаю, что вы изменили код ядра.

POST v2.0 +: Переменная должна действительно соответствовать $data['breadcrumbs'], а не классу. Опять же, похоже, что кто-то изменил основной код и представил эту ошибку.

Не пытайтесь изменить код ядра, если вы не уверены, что знаете, что делаете.

+0

Спасибо за объяснение. На самом деле, сухарики все еще там. Странно, когда они не должны быть! И да, я модифицирую основной код, это не живой сайт .. просто пытается учиться. :) – necrodeus

+0

Если вы хотите узнать о настройке Opencart, моим советом будет изучение vQmod. Это позволяет вам делать непостоянные изменения для разных бит и упрощает отладку, когда вы неизбежно сталкиваетесь с конфликтами расширения. – billynoah

Смежные вопросы