J'ai trois tables: (pour faire simple, je vais montrer que les domaines concernés)Comment puis-je sélectionner à partir de plusieurs tables dans CodeIgniter
Articles (id, title, text, author)
Comments (id, article_id, text, author)
Users (user_id, user_type, first_name, last_name, email, password)
Dans le tableau articles
, parce qu'un auteur peut avoir plusieurs articles , Je ne stocke que user_id
de l'auteur de la table users
, et je fais la même chose pour la table comments
. Mon problème est quand j'exécute une requête ActiveRecord dans les articles_model pour obtenir tous les articles avec les articles associés commentaires, et puis écho l'auteur à mon avis avec $row->author
, je reçois seulement l'user_id de l'auteur qui est 1, 2, 3, etc etc
Comment puis-je aller dans le tableau users
(table différente) dans la même requête et obtenir les auteurs réels first_name
et last_name
et le retourner?
Voici mon code:
Controller:
$data['articles'] = $this->getArticles();
$this->load->view('articles_view', $data);
function getArticles() {
$this->load->model('articles_model');
$articles = $this->articles_model->getAllArticles();
return $articles;
}
articles_model:
function getAllArticles() {
$this->db->where('id', $this->uri->segment(3));
$query = $this->db->get('articles');
return $query;
}
articles_view:
<?php foreach($articles->result() as $row) { ?>
<?php echo $row->author ?>
<?php echo $row->text ?>
<?php } ?>
J'ai une tonne d'autres domaines, mais c'est un ex version très dépouillée pour la simplicité.
Si je fais écho au $row->author
ci-dessus, je vais seulement obtenir le user_id. J'ai besoin d'obtenir le nom de l'utilisateur de la table users
à la place. Sûrement je ne dois pas faire un autre appel de fonction séparé et passer plus d'informations dans la vue. Toute aide ici serait grandement apprécié et serait en fait d'ouvrir un monde pour moi :)
Je ne peux pas parler de CI spécifiquement mais normalement il y a des méthodes 'join' sur votre classe db ... ou parfois des méthodes de jointure spécifiques sur les modèles comme' getWith' ou 'findWith'. – prodigitalson
Est-ce que le 'auteur' dans les articles et les commentaires table est la clé étrangère de la table des utilisateurs? – Manie