2017-12-07 2 views
0

ich bin Anfänger codieigniter Programmierer.benutze Variable von anderer Funktion in derselben Klasse coderigniter

Ich möchte Funktion und alle Variable von dieser Funktion zu einer anderen Funktion in der gleichen Klasse Controller verwenden. das ist mein Code

function page() 
{ 

    $page_id = $this->uri->segment(3); 
    $page_details = $this->m_module->submenu($page_id)->row_array(); 
    $data['title']= $page_details['sub_title']; 
    $data['menu'] = $page_details['title']; 
    $data['submenu'] = $page_details['sub_title']; 
    $data['link'] = $page_details['sub_target']; 
    $data['page_id'] = $page_id; 
} 

function employee() 
    { 
     $data['employee']= $this->m_module->employee()->result_array(); 
     $this->page();  
     $this->template->display($data['link'],$data); 
    } 

das Problem ist Variable Funktion Seite() kann nicht in Funktion Mitarbeiter() aufrufen.

das i an Browser bekommen

A PHP Error was encountered 

Severity: Notice 

Message: Undefined index: link 

Filename: controllers/Module.php 

Line Number: 39 

bitte helfen.

Danke

+0

Sie müssen passieren eine private Variable in der Klasse enthält, setzen z.B. Privater Link und setzen Sie es dann in Ihrer Seitenfunktion wie $ this-> link = $ data ['link'] und verwenden Sie dann $ this-> link, um es in Mitarbeiter zu verweisen. – iSZ

+0

können Sie ein Beispiel aus meinem Code geben? –

+0

Ich habe unten ein Beispiel hinzugefügt. Ist Ihr Code in einer CI-Klasse, so etwas wie unten? – iSZ

Antwort

1

Aktualisieren Sie Ihre Methode, wie die folgenden

private function page() { 
$page_id = $this->uri->segment(3); 
$page_details = $this->m_module->submenu($page_id)->row_array(); 

return [ 
    'title' => $page_details['sub_title']; 
    'menu' => $page_details['title']; 
    'submenu' => $page_details['sub_title']; 
    'link'=> $page_details['sub_target']; 
    'page_id' => $page_id; 
]; 

}

private function employee() { 
    $data = $this->page(); 
    $data['employee']= $this->m_module->employee()->result_array(); 
$this->template->display($data['link'],$data); 
} 

Der Grund, warum Sie nicht bekommen wurden, weil Ihre Methode nicht als Wert zurückgegeben wurde.

+0

danke Bruder, aber jetzt habe ich Problem, Variable $ Daten ['Mitarbeiter'] kann nicht in Ansicht Seite aufrufen. Fehler Code Ein PHP-Fehler Severity aufgetreten: Beachten Sie Nachricht: Undefined variable: Mitarbeiter Dateiname: human_capital/employee.php Zeilennummer: 24 Ich möchte array $ data [ 'Mitarbeiter' ] auf Ansichtsseite wie folgt

+0

Überprüfen Sie den aktualisierten Code. – usrNotFound

+0

vielen Dank Bro. das hat sehr geholfen. –

0

Sie können eine Klassenvariable den Wert der Verbindung zwischen Funktionen

<?php 
    class MyController extends CI_Controller { 
     private $link; 

     public function page($data){ 
      $this->link = $data['link']; 
     } 

     public function page(){ 
      echo $this->link; 
     } 

    } 
?> 
Verwandte Themen