2011-12-09 4 views
0

J'ai un problème Je continue à frapper le mur et j'ai besoin de quelques suggestions sur la meilleure façon de contourner cela. J'ai une boucle qui saisit les données de mon modèle, mais dans cette boucle, je dois la valider par rapport à une bibliothèque, mais je n'arrive pas à trouver un bon moyen de le faire.Codeigniter 2 en utilisant une bibliothèque dans une boucle

par exemple, je me suis une méthode de modèle qui ressemble à ceci:

public function GetUserList() { 

    $this->db->select('username, email, joindate, rank')->from('user'); 
    $query = $this->db->get(); 

    //loop through data and bind to an array. 
    foreach ($query->result() as $row) { 
     $users[] = $row; 
    } 

    return $users; 
} 

lorsque la page se charge, l'utilisateur verra une liste d'utilisateurs et leurs informations, mais certains utilisateurs ne veulent pas leur e-mail adresse à afficher, nous devons ensuite utiliser la bibliothèque de l'utilisateur pour aller chercher les paramètres pour cet utilisateur et voir si nous devrions cacher cet email ou non. La seule solution que j'ai trouvé était d'utiliser une fonction d'aide comme un détour, mais je pense que cela va me mordre à l'avenir en dupliquant des choses comme ça.

l'autre problème que j'ai trouvé était une fois que vous avez créé la bibliothèque, il n'a pas redémarré l'objet comme un nouveau (comme il le ferait en vanilla PHP). J'espère que quelqu'un a un bon moyen de résoudre un problème comme celui-ci.

Un dernier article, s'il fait la différence, j'utilise aussi Twig pour gérer mes vues.

Répondre

1

Vous n'avez pas besoin de charger chaque fichier de bibliothèque à l'aide de la fonction load(). La fonction load() permet de charger une instance unique dans l'espace de noms global (CI). Si vous voulez travailler avec une collection d'objets, vous devriez require le fichier comme vous le feriez normalement en PHP.

+0

Je pensais que ce serait le cas. mais encore comment puis-je filtrer les données? – Eman

+0

Faire une jointure dans votre requête est probablement la voie à suivre. – minboost

+0

Très bien, je vais tenter le coup. – Eman

0

Je me joindrais personnellement à votre tableau des préférences si possible. De cette façon, vous n'auriez pas à faire une requête séparée pour chaque utilisateur.

Questions connexes