1

我对 CI 很陌生。:)

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

例如,对于登录页面,它将是这样的:

$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
----------------------------

这些类别是从 db 中的数据填充的。

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

例如:

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']) ;
}
?>

这是正确的方法吗?我在正确的轨道上吗?

提前致谢 :)

4

1 回答 1

2

这是解决它的一种方法——尽管如果你遵循严格的 MVC 方法——助手会调用模型 $this->category->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>
于 2012-04-25T16:43:51.577 回答