2017-09-12 2 views
-1

Contrôleur: J'essaie de récupérer les enregistrements de la base de données, mais il affiche une variable indéfinie $ données dans la section de vue. Quel est le problème que je ne comprends pas?Une erreur PHP a été rencontrée Gravité: Avis Message: Variable indéfinie: données Nom de fichier: profile/viewabout.php Numéro de ligne: 79

public function vabout(){ 
    if(!$this->session->userdata('logged_in')){ 
     redirect('register/login'); 
    } 
    $this->load->model('profile_model'); 
    $data = $this->profile_model->viewprofile(); 

    $this->load->view('templates/pheader'); 
    $this->load->view('profile/viewabout',$data); 
    $this->load->view('templates/pfooter'); 

} 

Modèle: Ceci est la section du modèle, est-il question dans le modèle pour aller chercher le dossier?

public function viewprofile(){ 
    $data = $this->db->get('profile'); 
    return $data->row_array(); 
} 

Vue: errore: une erreur php rencontré $ data est non défini

<?php 
     foreach ($data as $row) 
     { ?> 
     <p><?php echo $row->id; ?></p> 
     <p><?php echo $row->name; ?></p> 
     <?php 
     } 
    ?> 

Répondre

1

Vous devez passer tableau avec key nom $data ne contiennent data comme nom de clé, chaque key vous passez avec data tableau va devenir variable en vue

public function vabout(){ 
       if(!$this->session->userdata('logged_in')){ 
        redirect('register/login'); 
       } 
       $this->load->model('profile_model'); 
       $data['data'] = $this->profile_model->viewprofile(); // add data as index 

       $this->load->view('templates/pheader'); 
       $this->load->view('profile/viewabout',$data); 
       $this->load->view('templates/pfooter'); 

      } 

Vous récupérez également des données dans la vue comme objet. Ainsi, dans le modèle de convertir résultat dans le tableau

public function viewprofile(){ 
    $data = $this->db->get('profile'); 
    return $data->result(); 
} 
+0

ça n'a pas @B. Desai Merci quand même .. –

1

Remplacez votre code avec ceci: contrôleur

public function vabout($id = NULL){ 
     if(!$this->session->userdata('logged_in')){ 
      redirect('register/login'); 
     } 
     $this->load->model('profile_model'); 
     $data['data'] = $this->profile_model->viewprofile($id); 

     $this->load->view('templates/pheader'); 
     $this->load->view('profile/viewabout',$data); 
     $this->load->view('templates/pfooter'); 

    } 

Remplacement modèle à cet égard. Est-ce juste alors?

Modèle:

public function viewprofile($id = FALSE){ 
    if($id === FALSE){ 
     $query = $this->db->get('profile'); 
     return $query->result_array(); 
     } 
     $query = $this->db->get_where('profile',array('id' => $id); 
     return $query->row_array(); 
    } 

Vue:

<?php 
       foreach ($data as $row) 
       { ?> 
       <p><?php echo $row['id']; ?></p> 
       <p><?php echo $row['name']; ?></p> 
       <?php 
       } 
      ?> 
+0

Merci @flixy cela a fonctionné .... –

+0

N'importe quand @SohailShaikh – flixy

+0

@SohailShaikh deux retours dans la même fonction, êtes-vous sérieux, il a travaillé? –