2017-09-29 8 views
0

möchte ich meine Liste der Reise Echo, wenn ich print_r versuchen, den Wert zeigen, aber wenn ich echo das Ergebnis immerPHP-codeigniter, wie Daten in der Sitzung bekommen

Nachricht: Undefined variable: Abenteuer

Dateiname: views/profile.php

Zeilennummer: 121

Backtrace:

Severit y: Warnung

Nachricht: Invalid argument für foreach geliefert()

Dateiname: views/profile.php

Zeilennummer: 121

dies mein Controller ist:

public function getListTrip(){   
    $this->load->model('userModel');   
    $data['adventure'] = $this->userModel->getTrip()->result_array(); 
    //echo ($data); 
    $this->load->view('profile', $data);   
} 

und das ist mein Modell:

function getTrip(){ 
    $userId = $this->session->userdata('user_id');  
    return $this->db->get_where('adventure',['user_id' => $userId]); 
} 

das ist meine Ansicht

     <table> 
          <?php 
          foreach ($adventure as $b){ 
           echo "<tr> 
           <td>$b->name</td> 
           <td>$b->place</td> 
           <td>$b->category</td> 

           </tr>"; 
          } 

         ?> 
         </table> 

so wie sollte ich meinen Code bearbeiten Sie den Wert Show in meiner Seite Whit echo oder foreach nicht in print_r ... vielen Dank

zu machen
+0

Tipp überprüfen können Sie benennen Sie die Controller falsch für CI lesen Sie bitte hier für über Datei- und Klassenbenennung in CI https://www.codeigniter.com/user_guide/general/styleguide.html#file-naming – user4419336

Antwort

1

Ändern Sie Ihr Modell

function getTrip(){ 
    $userId = $this->session->userdata('user_id');  
    $query= $this->db->get_where('adventure',['user_id' => $userId]); 
    return $query->result(); 
} 

Auch chnage in Ihr Controller

$data['adventure'] = $this->userModel->getTrip()->result_array(); 

Nach

$data['adventure'] = $this->userModel->getTrip(); 
+0

seine arbeit dude, danke .. aber ich sollte das sehen im blick auf meine controller/getListTrip kann nicht in meinem/profil sehen –

1

echo zur Ausgabe eines oder mehrere Strings verwendet, da Ihre $data wird ein Array Sie den Fehler zu sehen, müssen Sie die Daten in der Ansicht zu betrachten, passieren und iterieren selbst, wie:

public function getListTrip(){ 
    $this->load->model('userModel'); 
    $data['adventure'] = $this->userModel->getTrip()->result_array(); 
    //pass data to your view 
    $this->load->view('yourviewname', $data); 
} 

Weitere Informationen erhalten Sie Codeigniter Views

aktualisieren

Überprüfen Sie, ob Ihr Array, bevor Sie versuchen durch sie nicht leer ist zu iterieren, wie in der Ansicht ::

<?php 
if(!empty($adventure)) { 
    foreach($adventure as $b): 
?> 
     <tr> 
      <td><?php echo $b['name']; ?></td> 
      <td><?php echo $b['place']; ?></td> 
      <td><?php echo $b['category']; ?></td> 
     </tr> 
<?php 
    endforeach; 
} 
?> 
+0

Ich versuche, was Sie vorschlagen, und immer noch ein Fehler in meiner Ansichtsseite, bitte helfen Sie mir, wo ist meine Error?? –

+0

@FahmiSalmin Überprüfen Sie den hinzugefügten Code. Übrigens, da das Ergebnis Array ist, können Sie nicht auf die Felder mit dem Operator '->' zugreifen. –

0

Sie können nicht echo den Inhalt eines Arrays.

Also, wenn Sie wollen, dass der Inhalt eines Arrays print_r($arrayName);

verwenden, um anzuzeigen, und wenn Sie eine beliebige Variable nur drucken möchten verwenden nur echo $variableName;

0

Ich sehe kein Problem mit Ihrem Code. Wenn Sie sich nicht mit Autoloader die Sitzung Bibliothek zu laden, könnte das Problem sein:

$this->load->library('session'); 

Sie die Dokumentation Codeigniter sessions

Verwandte Themen