2017-09-29 1 views
0

J'essaie de créer une fonction dans le framework CodeIgniter pour que les utilisateurs puissent cliquer sur la page de détails du produit, et voir quel utilisateur a téléchargé ce produit et qu'ils doivent pouvoir cliquer sur le produit propriétaire d'aller à sa page de profil.Lien vers une page de profil utilisateur dans codeigniter

Maintenant, je suis déjà en mesure de répercuter les informations sur le propriétaire du produit sur la page des détails. Mais le lien vers la page de profil du propriétaire ne fonctionne pas pour une raison et le nom n'est plus répercuté depuis que j'ai essayé d'en faire un lien.

Ceci est ma page de détails du produit (de details.php) fonction de boucle foreach où je suis en train de faire écho le nom d'utilisateur du propriétaire d'un produit et de le relier à leur page de profil:

<?php include_once ('templates/header.php'); ?> 


<div class="container"> 
<h3>Email van de eigenaar:</h4> 
<?php 
     foreach($userdetail_list as $row) 
         { 
         ?> 
         <tr> 
          <td><?php echo $row['email'];?></td> 
         </tr> 
     <?php } ?> 
</div> 


<div class="container"> 
<div class="row"> 
    <div class="col-md-4" style="margin-top:24px;"> 
    <img src="<?php echo base_url(); ?>upload/<?php echo $product['product_foto']; ?>" class="img-responsive"> 
</div> 

<div class="col-md-5"> 
    <h1> <div class="product_naam"> <?php echo $product['product_naam']; ?> </div> </h1> 
    <h3>Over dit cadeau</h3> 
    <div class="product_beschrijving"><?php echo $product['product_beschrijving']; ?> </div> 
    </div> 
    <div class="col-md-3"> 
    <a href="<?php echo base_url() ?>/Cadeauaanvragen"> <button type="button" class="btn btn-default">Cadeau aanvragen</button></a> 
    <div class="aangeboden_door"> Aangeboden door: <?php 
     foreach($userdetail_list as $row) 
         { 
         ?> 
         <tr> 
    <td><a href="<?php echo base_url() . 'User/profiel_user?id='.$row['user_id']?>"><?=$row['username']; ?></a></td> 
    <td><?php echo $row['email'];?></td> 
</tr> 
     <?php } ?> 
</div> 
    </div> 
    </div> 
</div> 




<div class="container"> 

<footer> 
<p>&copy; kadokado 2017, Inc.</p> 
</footer> 
<hr> 
</div> 

<div class="clearfix"></div> 
<?php include_once ('templates/footer.php'); ?> 

Quand je charger la page d'affichage Je ne vois pas le nom d'utilisateur et aucun lien vers le profil des utilisateurs. Voici mon contrôleur (User.php):

<?php 

class User extends CI_Controller 
{ 



     public function index() 
    { 
    $this->load->view('profile', $data); 
    } 



    public function __construct() 
    { 
     parent::__construct(); 
     if ($_SESSION['user_logged'] == FALSE) { 
      $this->session->set_flashdata("error", "Please login first to view this page!! "); 
      redirect("auth/login"); 
     } 
    } 


public function userdetails($user_id) 
{ 
    //load the User_model 
    $this->load->model('User_model'); 

    //call function getdata in de Product_model 
    $data['userdata_list'] = $this->User_model->getdata(); 

    //get product details 
    $data['user'] = $this->User_model->get_user_info($user_id); 

    //laad view 
    $data['main_content'] = 'profiel_user'; 
    $this->load->view('profiel_user',$data); 
} 



public function profile() 
{ 

$this->load->model('User_model'); 
if ($_SESSION['user_logged'] == FALSE) { 
$this->session->set_flashdata("error", "Please login first to view this page!! "); 
redirect("auth/login"); 
} 

$this->load->view('profile'); 

} 



} 

fichier modèle complet (User_model.php)

<?php 


class User_model extends CI_Model { 


public function getUserInfoByEmail($email) 
    { 
     $q = $this->db->get_where('users', array('email' => $email), 1); 
     if($this->db->affected_rows() > 0){ 
      $row = $q->row(); 
      return $row; 
     }else{ 
      error_log('no user found getUserInfo('.$email.')'); 
      return false; 
     } 
    } 

    public function getUserInfo($user_id) 
    { 
     $q = $this->db->get_where('users', array('user_id' => $user_id), 1); 
     if($this->db->affected_rows() > 0){ 
      $row = $q->row(); 
      return $row; 
     }else{ 
      error_log('no user found getUserInfo('.$user_id.')'); 
      return false; 
     } 
    } 


     public function getdata() 
    { 
     $this->db->where('user_id', $id); 
     $this->db->from('users'); 
     $query = $this->db->get(); 
     if($query->num_rows()>0) 
     { 
      return $query->result_array(); 
     } 
    } 



} 

?> 

Répondre

0

problably à cause de cette ligne:

<?=$row['username']; ?> 

Peut-être que votre serveur ne ne supporte pas les étiquettes à main courtes?

essayez ceci:

<?php echo $row['username']; ?> 

Vous avez manqué aussi un point-virgule ici à la fin:

echo base_url() . 'User/profiel_user?id='.$row['user_id'] 

et aussi ici:

<a href="<?php echo base_url() ?>/Cadeauaanvragen"> 

Vous pouvez également utiliser la ligne de table et les données de table tags sans balise de table environnante. Ou supprimez tous les tags tr et td. Voir: How do browsers analyze <tr> <td> without <table>?