笨从其他表中概述
问题描述:
林获得名正从我的数据库列表如下(在我的控制器):笨从其他表中概述
$view["interactions"] = $this->interacties->getInteractionsId($id);
这让在我的表中的“互动”数据库一切的数组。
林张贴这对我用下面的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']
到这是在我的“用户”表被称为'一个名称NAAM”。通常我会得到该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;
}
答
如果你改变你的模型功能,这一点:
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 。
答
既然你在一个视图中,您应该只做展示的东西,没有进一步的数据库调用。
你可以在控制器中做一个额外的foreach
循环。
不过,最好的选择恕我直言是修补方法getInteractionsId()来加入与用户表,这样你就同时拥有$互动[“gebruikers_id”]和$互动[“users_naam”]。
无论结果如何,想起fat models and skinny controllers。
您可以在查询中使用连接,以便`getInteractions`的结果也包含用户名。如果你想要如何做到这一点的建议,请显示该功能的代码。 – Mischa 2011-12-14 14:48:51
我添加了这个函数,即时通讯不太熟悉CI中的连接函数,所以也许你可以帮忙。 – Augus 2011-12-15 07:57:00