2012-03-26 5 views
2

I ont 2 fonctions/méthodes dans le même contrôleur CodeIgniter comme ceci:Comment envoyer des données/variables d'une méthode à une autre dans le même contrôleur dans CodeIgniter?

public function _get_page_settings() { 
    $page_settings = $this->page_model->get_page_settings(); 
    $data['ps'] = $page_settings; 
} 

public function registration() { 
    $this->_get_page_settings(); 
    $this->load->view('page_registration', $data); 
} 

La première méthode _get_page_settings() attrape une certaine substance de db et la stocker dans une variable à l'intérieur ps réseau de données.

Je souhaite utiliser cette méthode dans de nombreuses autres méthodes à l'intérieur de ce contrôleur. Donc, comment envoyer les données correctement à registration() car ce code ci-dessus ne fonctionne pas correctement. Il lance cette erreur à mon avis: Message: Variable indéfinie: donnée sur la ligne 70 qui est cette ligne: $ this-> load-> view ('page_registration', $ data);

EDIT: RESOLU!

Je l'ai enfin compris. Vous pouvez le faire comme ceci:

public function _get_page_settings() { 
    $data['ps'] = $this->page_model->get_page_settings(); 
    $this->ps = $data['ps']; 
} 

public function registration() { 
    $this->_get_page_settings(); 
    $this->load->view('page_registration', $this->ps); 
} 

Et pour la sortie dans la vue .: par exemple

<?php echo $this->ps->page_name; ?> 

Répondre

2

$data a simplement une portée différente de visibilité, ce n'est pas CodeIgniter spécifique. Vous pouvez résoudre de deux façons:

  • Faire $data une propriété de classe ($this->data)
  • Faire revenir _get_page_settings()$data et l'assigner à une variable lors de l'appel.
+0

Pouvez-vous être plus précis, s'il vous plaît? ;) – Derfder

+0

Ok, je l'ai résolu. Merci. – Derfder

Questions connexes