2014-05-04 1 views
0

Je reçois des données d'une table et s'affiche dans mon affichage (codeigniter). Dans la vue, j'ai un identifiant qui est bien sûr un entier. Je dois obtenir le nom d'utilisateur de l'identifiant de l'utilisateur. Comment vais-je obtenir le nom d'utilisateur de l'identifiant?Obtenir le nom d'utilisateur de l'ID utilisateur dans une vue

Le code du modèle est ci-dessous.

class Resumemodel extends CI_Model 
{ 
    function getallresume() 
    { 
    $query = $this->db->get('resume'); 
     return $query; 
    } 
} 

Le code du contrôleur est ci-dessous.

class Resumec extends CI_Controller 
{ 
    function resumelist() 
    { 
    $this->load->model('Resumemodel'); 
    $query = $this->Resumemodel->getallresume(); 
    $dt['main_content'] = 'admin/resumeinfo'; 
    $dt['query'] = $query; 
    $this->load->view('admin/includes/template.php',$dt); 
    } 
} 

est vue ci-dessous (partie nécessaire uniquement i mis ici)

foreach ($query->result() as $row) 
{ 
    $id = $row->user_id; 
    // other table data. 
} 

donc de l'ID utilisateur comment je vais obtenir le nom d'utilisateur sans se joindre à la requête?

PS Veuillez fournir une réponse sans demande de jointure. Cela fonctionnera avec la requête de jointure, mais je cherche des alternatives.

J'ai essayé avec this-

$objResume = new resumec(); //resumec is the controller 
$username = $objResume->get_username($id); // get_username is function to get username. 
echo $username; 

Cela fonctionne, mais ce n'est pas bonne/bonne façon selon la logique MVC. Alors y a-t-il des alternatives?

éditer - 2 tables sont là. 'user' et 'resume'. user_id est dans la table 'resume' et uid, le nom d'utilisateur est dans la table 'user'.

+0

Où est le nom d'utilisateur situé dans la base de données? Comment les données sont-elles structurées - l'identifiant de l'utilisateur et le nom d'utilisateur sont sur deux tables distinctes? – Dan

+0

@Daniel Edited ma question. Vérifiez-le. Ajout d'informations sur la table dans la dernière partie de la question. – user1638279

Répondre

2

Lisez à propos des aides CodeIgniter

simplement étendre simplement l'aide d'inclure la fonction qui se nom d'utilisateur par id.

Pour acquérir plus de connaissances, il suffit de visiter Codeigniter helper

Bonne chance

+1

ohh .. oui. J'utilise déjà une fonction d'aide pour lier mes fichiers css et js. Donc, je sais comment utiliser des aides .. mais dans l'aide je dois écrire des requêtes de bases de données de base. Droite ? – user1638279

+0

Non, vous n'avez pas besoin de trop, il suffit de charger le modèle et d'utiliser sa méthode. – Samuraik

+0

Cochez cette réponse pour charger le modèle dans les helpers http://stackoverflow.com/questions/2479132/how-can-i-load-model-to-helper – Samuraik

0

Comme vous Resumemodel/devriez avoir userModel où vous pouvez définir la fonction get_user_name($user_id). Vous pouvez charger ce modèle avec Resumemodel et pouvez utiliser la fonction get_user_name où vous voulez.

1

Vous pouvez faire cela change:

class Resumec extends CI_Controller 
{ 
    function resumelist() 
    { 
    $this->load->model('Resumemodel'); 
    $query = $this->Resumemodel->getallresume(); 
    $usernames = array(); 
    foreach ($query->result() as $row) 
    { 
     $usernames[$row->user_id] = $this->get_username($row->user_id); 
    } 
    $dt['main_content'] = 'admin/resumeinfo'; 
    $dt['query'] = $query; 
    $dt['usernames'] = $usernames; 
    $this->load->view('admin/includes/template.php',$dt); 
    } 
} 

Ainsi, dans la vue que vous faites ceci:

foreach ($query->result() as $row) 
{ 
    $id = $row->user_id; 
    $username = $usernames[$row->user_id]; 
} 
+0

Oui, cela fonctionne également. Mais malheureusement, je ne peux pas marquer 2 réponses comme réponse acceptée. Mais encore +1 (upvote) pour votre temps et vos efforts. J'ai vérifié cela aussi.et cela fonctionne. :) Je vous remercie. – user1638279

Questions connexes