2015-08-10 1 views
1

До свойств класса Opencart 2.0 можно было получить доступ непосредственно из шаблона. Например, $this->config->get('config_language') или $this->request->get['route'] были доступны из файла шаблона администратора.Доступ к свойствам и методам класса из шаблона

С новым методом $this->load->view(), ни одна из этих работ не работает. Есть ли простой способ передать методы и свойства класса, которые доступны в текущем контроллере для tpl без явного добавления их в массив $data?

ответ

2

В версии 2, если вы хотите эти переменные, вы можете легко получить к ним доступ. Существует небольшое изменение кода, теперь вы можете использовать

$this->registry 

который содержит все. Таким образом, вы должны получить эти вещи образуют

$this->registry

как этот

$this->registry->get('config')

он будет работать как

$this->config 

так что ваш

$this->config->get('config_language') 

становится

$this->registry->get('config')->get('config_language') 

как этот

$this->request->get['route'] == $this->registry->get('request')->get['route']; 

$this->request->post['route'] == $this->registry->get('request')->post['route']; 

$this->request->files['file'] == $this->registry->get('request')->files['file']; 

для более просто печатать $this->registry в любом шаблоне.

+1

@billynoah первый комментарий - я добавил тот же код в моем header.tpl (админ) - изображение (https://box.everhelper.me/attachment/308102/g2ErtWJkREC4gDBkwCNhzMwbA2N3T4EX/424043-vhADkCk6smHJXT2I/screen.png) и это что я получаю на мой взгляд (https://box.everhelper.me/attachment/308104/g2ErtWJkREC4gDBkwCNhzMwbA2N3T4EX/424043-ZuUefADM1VtUT7R4/screen.png) –

+0

@billynoah будет лучше, если вы опубликуете свою проблему после использования этого кода, а не просто добавив, что он не работает, и о втором комментарии, который вы знали о том, что вы спрашиваете о файлах с шаблонами (tpl), а не о контроллере, поэтому почему я напишу что-нибудь о том, что происходит в вашем контроллере, это все о шаблоне, почему вы предполагаете себя. –

+0

жаль, что вы совершенно правы. Я сделал небольшое изменение в вашем ответе, чтобы я мог отменить свой голос. – billynoah