您好我正在处理一个项目,我有一个页脚和一个侧边栏,我想从数据库加载一些信息,我怎么能这样做它在所有页面加载相同的。
我想创建一个管理系统,我该怎么做?,我是否需要新的codeigniter灌注,或者我可以在我的控制器,模型和视图中创建一个新的地图?
你怎么做的??答案 0 :(得分:1)
我想要的方法是创建一个MY_Controller然后将所有通用逻辑放在其中,然后所有其他控制器扩展你的MY_Controller。这样可以避免重复获取内容,并在控制器内反复定义和编写相同的代码。请参阅Phil Sturgeon关于base classes and keeping it DRY的文章。
为了模仿您的网站,包括管理面板,Phil Sturgeon还创建了一个简单的template library,允许您在网站上拥有可以在其间切换的不同布局等主题。
至于创建一个管理面板,Phil也写了一篇关于这个主题的帖子,他详细介绍了开发管理面板的各种方法,哪种方法最好,等等。对文章的评论也很有帮助。阅读他的admin article here。
答案 1 :(得分:0)
我通常使用的模板方法就是这样......(显然这取决于你的侧边栏,在你的设计中,是在标记中的“内容”之前/之后)
<? $this->load->view('path/to/header') ?>
//content of page
<? $this->load->view('path/to/sidebar') ?>
<? $this->load->view('path/to/footer') ?>
现在,如果您要为每个视图提供变量,您可以在控制器的构造函数中全局加载它们。
$data->some_variable = $some_information;
$this->load->vars($data);
这将使$some_variable
可用于从该控制器加载的所有视图。
管理系统只是您的站点/应用程序的另一个区域,它只受到身份验证系统的保护。您首先需要一种方法来验证用户的身份。我通常使用Ion_Auth作为我首选的auth库,并且我已经完成了fairly extensive write-up如何以非常干净的方式设置Ion_auth和“受保护”控制器。