我对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']) ;
}
?>
这是正确的做法吗? 我是在正确的轨道吗?
提前致谢:)
答案 0 :(得分:2)
这是解决它的一种方法 - 尽管如果你遵循严格的MVC方法 - 帮助者会调用模型$ this-&gt; category-&gt; select_cat(),并将SQL查询放在模型中。此外,SQL查询应使用活动记录选择,而不是文本SQL查询。
另一种解决方法是使用一些对左侧菜单(即类别)有DIV的CSS,以及右侧的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>