2016-12-10 5 views
0

Ich versuche einen Controller zu laden, der zwei verschiedene Ansichten lädt, und übergibt ein anderes Array an jede Ansicht.Mehrere Arrays an mehrere Views übergeben

public function index(){ 
     $this->load->view('Head'); 

     $data=$this->DAOPromotor->recuperarPromotor(); 
     $eventos=$this->DAOEvento->recuperarPromotorEventos(); 
     $this->load->view('MostrarPromotor', $data); 
     $this->load->view('MostrarPromotorEventos', $eventos); 
     $this->load->view('Footer'); 
} 

Dies ist mein Controller. Jetzt lädt die erste Ansicht ("MostrarPromotor") ganz gut, aber die zweite wirft weiterhin die Warnung Undefinierte Variable. Ich habe die recuperarPromotorEventos() -Methode auf verschiedenen Controllern verwendet, und es funktioniert gut. Ich behandle das Array gleich . Art und Weise auf beiden Skripte, aber es funktioniert nur in einem

ich frage mich, ob vielleicht ist es nicht möglich, zwei Ansichten zur gleichen Zeit Daten haben reciving

+0

Was 'Nicht definiert Variable' sehen Sie? –

+0

Eventos, auf dem Teil, der der zweiten Ansicht entspricht. Ich habe es herausgefunden, tho: Als ich die Variable $ eventos an die View übergeben habe, hat sie sie auf ihre eigenen Teile aufgeteilt und die Indizes als Referenzen benutzt; Da keiner der Indizes "Eventos" genannt wurde, konnte die Ansicht ihn nicht finden. Ich weiß nicht, wie es besser zu erklären, aber das Update wurde die $ Eventos-Deklaration dafür geändert: $ Eventos ["Eventos"] = $ this-> DAOEvento-> recuperarPromotorEventos(); Hoffe, dass meine Antwort ein wenig klarer macht. – user3898085

Antwort

1

eine Lösung gefunden, nachdem die Suche um einiges mehr. wenn Übergeben Sie ein Array an eine Ansicht, teilt es das Array in seine verschiedenen Komponenten auf, wobei die Indexnamen des Arrays als Referenzen verwendet werden: Also, wenn ich dieses Array hätte:

$eventos = array(
    'data1' => 'someData', 
    'data2' => 'someMoreData' 
); 

Wenn ich dieses Array an eine Ansicht übergebe, kann die Ansicht auf die Variablen $ data1 und $ data2 zugreifen, aber nicht auf die $ eventos-Daten. Da mein ursprüngliches Array keinen Index namens eventos hatte, gab es keine Variable namens this.

Was mein besonderes Problem, das einzige, was ich es zu beheben tun musste, war, den Code, dies zu ändern:

public function index(){ 
    $this->load->view('Head'); 

    $data=$this->DAOPromotor->recuperarPromotor(); 
    $eventos["eventos"]=$this->DAOEvento->recuperarPromotorEventos(); 
    $this->load->view('MostrarPromotor', $data); 
    $this->load->view('MostrarPromotorEventos', $eventos); 
    $this->load->view('Footer'); 
} 
Verwandte Themen