Codeigniter从概述中的其他表中获取名称

时间:2011-12-14 14:34:03

标签: php codeigniter

我从我的数据库中获取一个列表(在我的控制器中):

$view["interactions"] = $this->interacties->getInteractionsId($id);

这给了一个数组,其中包含数据库中“interaction”表中的所有内容。

我使用以下foreach循环将其发布到我的视图中:

<?php if($interactions): ?>
   <?php foreach($interactions as $interaction): ?>
      <tr class="gradeX">
         <td><a href="<?=site_url('interactie/single/'.$interaction['id'])?>"><?=$interaction['datum']?></a></td>
         <td><?=$interaction['gebruikers_id']?></td>
         <td><?=$interaction['gesproken_met']?></td>
         <td><?=$interaction['interactie']?></td>
      </tr>
   <?php endforeach; ?>
<?php else: ?>
   <p>Geen interacties</p>
<?php endif; ?>

这很好用,但现在我想将$interaction['gebruikers_id']更改为我的'users'表中名为'naam'的名称。 Normaly我会得到id并使用另一个get函数。但是因为这是一个foreach循环,我不知道该怎么做。

这是模型中的功能:

public function getInteractionsId($id) {
    $this->db->select('*');
    $this->db->where('bedrijf_id', $id);
    $query = $this->db->get('interacties');

    return $query->num_rows() > 0 ? $query-> result_array() : FALSE;

}

2 个答案:

答案 0 :(得分:1)

如果您将模型功能更改为:

public function getInteractionsId($id) {
  $this->db->select('interacties.*, gebruikers.naam');
  $this->db->join('gebruikers', 'interacties.gebruikers_id = gebruikers.id');
  $this->db->where('bedrijf_id', $id);
  $query = $this->db->get('interacties');
  return $query->num_rows() > 0 ? $query-> result_array() : FALSE;
}

您可以在视图中执行此操作:

<?=$interaction['naam']?>

如果您不熟悉数据库连接的基础知识,请查看this article

答案 1 :(得分:0)

由于您处于视图中,因此您应该只执行演示文稿,不再进行数据库调用。

您可以在控制器中以额外的foreach循环执行此操作。

仍然,最好的选择是恕我直言,将你的方法getInteractionsId()修补为加入用户表,这样你就可以同时拥有$ interaction ['gebruikers_id']和$ interaction ['users_naam']

无论你最终如何,都要想到fat models and skinny controllers