2011-09-19 4 views
2

J'ai joué avec le codeingiter récemment, et il semble faire le travail. Cependant, j'ai un petit problème ici. Je charge mon point de vue comme ceci,Codeigniter des informations du modèle en vue

<?php $this->load->view('default_views/header_view') ?> 
<?php $this->load->view($main_content); ?> 
<?php $this->load->view('default_views/fotter_view') ?> 

Faire cela de cette manière m'aide à garder mes vues propres. Mais, j'ai un menu dans header_view avec un compteur du nombre de personnes qui sont connectées et du nombre de personnes qui se sont inscrites sur mon site. Existe-t-il un moyen facile d'accéder à un modèle avec ces informations? ou dois-je envoyer une variable sur toutes mes vues pour garder une trace de cela? On dirait que je dois me répéter 1000 fois si je le fais comme ça?

Des suggestions?

Répondre

3

Vous pouvez appeler get_instance() à peu près n'importe où.

$ci = &get_instance(); 

$ci->load->model('Model'); 

$c = $ci->model->counters(); 

echo $c; 

Devrait être ce que vous recherchez.

Bien que vous puissiez le faire directement dans votre vue, vous devriez au moins créer une fonction d'assistance pour faire les appels au modèle et l'utiliser dans votre vue à la place. (pas de meilleure pratique, mais toujours mieux que php inline.) La meilleure chose que vous pourriez faire est de repenser la conception de votre modèle/contrôleur et comprendre comment apporter cette information dans la vue proprement.

get_instance();

Questions connexes