2015-08-10 1 views
1

Avant d'accéder directement aux propriétés de classe Opencart 2.0 à partir du modèle. Par exemple, $this->config->get('config_language') ou $this->request->get['route'] étaient accessibles à partir d'un fichier de modèle d'administration.Accès aux propriétés et aux méthodes de classe à partir du modèle

Avec la nouvelle méthode $this->load->view(), aucune de ces méthodes ne fonctionne. Existe-t-il un moyen simple de transmettre les méthodes et propriétés de classe disponibles dans le contrôleur courant au tpl sans les ajouter explicitement au tableau $data?

Répondre

2

Dans Opencart version 2, si vous voulez ces variables, vous pouvez facilement y accéder. Il ya un léger changement est le code, maintenant vous pouvez utiliser

$this->registry 

qui détient tout. Donc, vous devez obtenir ces choses sous forme

$this->registry

comme celui-ci

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

il fonctionnera comme

$this->config 

afin que votre

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

devient

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

comme celui-ci

$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']; 

pour plus simplement imprimer $this->registry dans un modèle.

+1

@billynoah 1er commentaire - i ajouté même code dans mon header.tpl (admin) - image (https://box.everhelper.me/attachment/308102/g2ErtWJkREC4gDBkwCNhzMwbA2N3T4EX/424043-vhADkCk6smHJXT2I/screen.png) et ceci est ce que je reçois à mon avis (https://box.everhelper.me/attachment/308104/g2ErtWJkREC4gDBkwCNhzMwbA2N3T4EX/424043-ZuUefADM1VtUT7R4/screen.png) –

+0

@billynoah il vaudra mieux si vous postez votre problème après avoir utilisé ce code, au lieu de juste ajouter que ça ne marche pas et à propos du deuxième commentaire vous saviez que vous posez des questions sur les fichiers template (tpl) et non sur controller, pourquoi je vais écrire quelque chose sur ce qui se passe dans votre controller. –

+0

désolé vous êtes complètement correct. J'ai apporté une petite modification à votre réponse afin que je puisse annuler mon vote. – billynoah