2012-04-25 72 views
1

我对CI很陌生。 :)CodeIgniter - 从db中选择数据,对所有视图都通用

在我的项目中,我已将页面分隔为页眉,页脚和正文。并且基于控制器加载主体部分(视图)。页眉和页脚对所有页面都是通用的。

例如,对于一个登录页面,它会是这样:

$this->load->view('header'); 
$this->load->view('login'); 
$this->load->view('footer'); 

但现在我关心的是,如何产生“类别”部分(将名单上的左边几个类别名称身体部分)。点击一个类别后,相应的详细信息页面将显示在右侧(即内容部分)。所以,在所有视图(所有页面)中,我需要显示类别列表。

视觉例如:

---------------------------- 
    Header Portion of Page 
---------------------------- 
     Body Portion 
     ============ 
Cat1 | 
Cat2 | 
Cat3 |  Content 
Cat4 | 
Cat5 | 
---------------------------- 
      Footer 
---------------------------- 

这些类别是从分贝的数据填充。

我刚刚做了一些搜索。所以,我正在考虑创建一个辅助类并自动加载它。所以,在所有视图中,我都会调用函数并回显结果。

对于如:

function hlp_getCategories() 
{ 
    $ci =& get_instance(); 
    $q = $ci->db->query('SELECT cat_name FROM tblCategories'); 
      return $q; 
} 

并在视图:

<?php 
$q = hlp_getCategories(); 
foreach ($q->result_array() as $row) 
{ 
    echo anchor('cat/' . $row['cat_name'], $row['cat_name']) ; 
} 
?> 

这是正确的做法? 我在正确的轨道?

感谢提前:)

回答

2

这是解决这个问题的一种方式 - 但如果你遵循严格的MVC方法 - 助手将调用模型$这个 - >类别 - > select_cat(),并把在模型中的SQL查询。此外,SQL查询应该使用活动记录选择,而不是文本SQL查询。

解决这个问题的另一种方式是使用一些CSS,其左侧菜单(即类别)具有DIV,右侧(即内容)具有DIV。

那么你可以做

$this->load->view('header'); 
$this->load->view('categories'); 
$this->load->view('login'); 
$this->load->view('footer'); 

内。然后你的类别查看

<div class = "left"> 
    // show categories here 
</div> 

和内容的意见

<div class = "right"> 
    // show content here 
</div> 
+0

这是正确的方式中。 – 2012-04-25 16:45:09

+0

非常感谢:) – 2012-04-25 16:53:41

相关问题