Передача $ this в шаблон в Opencart — работает для свойств класса, но не для методов родительского класса

Ранее в Opencart вы могли получить доступ к методам класса контроллера из шаблона (.tpl), просто вызвав $this:

$store_name = $this->config->get('config_language');

В Opencart 2+ это больше невозможно, и стало необходимо вызывать их через registry как обсуждалось Вот

$store_name = $this->registry->get('config')->get('config_language');

Теперь в Opencart 2.3 это тоже не работает. Поэтому я попытался просто пройти $this к $data массив и это только частично работает:

(в контроллере)

public $name = 'test';
...
$data['this'] = $this;

(в шаблоне)

//  The following works fine and outputs the class property $name
$this->name;

// This does not work and returns errors
// Notice: Undefined property: Template\PHP::$registry
// PHP Fatal error:  Call to a member function get() on a non-object
$this->registry->get('config')->get('config_language');

ВОПРОС: Почему непосредственные свойства класса контроллера доступны, но метод родительского класса registry не является?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]