问题描述
|
我将在代码点火器中建立我的第一个站点,这是一个相当基本的站点,如下所示:
家
登录/注册
members area
protected page 1
protected page 2
protected page 3
general info section
page 1
page 2
page 3 (dynamic table of reports)
about section
page 1
page 2
blog section
listing
article page
我已经看过一些基本的教程,并阅读了一些文档,但是仍然不确定什么是构建此文档的最佳方法。可以给任何具有CI经验的人示范一个例子吗?
一些具体的问题是:
带有导航面板的标题在所有页面上都相同。通常,我会使用if / else对其进行编码,以显示突出显示的当前部分。我想我只是将其保留为包含(视图),然后先通过控制器加载它,还是将其包含在每个视图中?
我设想有一个名为\'user \'的模型来处理登录和注册,一个名为\'blog \'的模型和一个名为''reports \'的模型。听起来对吗?
对于诸如此类的静态部分,我猜没有模型,而我每个控制器只有一个带有功能的控制器?即about.PHP与page1(),page2()及其所做的只是加载静态视图?
解决方法
1->要解决此问题,我决定像这样使用自己的控制器
使用CI 2.x,在app / core下创建一个名为MY_Controller.php的文件,如下所示:
<?php
class MY_Controller extends CI_Controller {
function __construct() {
parent::__construct();
}
public function loadView($view) {
$this->load->view(\'header\');
$this->load->view($view);
$this->load->view(\'footer\');
}
}
然后我扩展此控制器而不是CI。确保您的$config[\'subclass_prefix\'] = \'MY_\';
在config.php文件中。
2->是的
3->那就是它:D
,我是这里的新手(codeigniter),但是:
对于页眉/页脚,我从这里开始采用模板策略(第一种选择)。很好
在建模之前,我会计划控制器-每个部分大约一个。我将所有它们都从MY_controller继承,在这里放置通用功能。您的模型对我来说似乎是正确的。我认为它们像DAO一样,或提供对数据库的访问的“服务对象”。站点的一般智能(如果需要)应位于自定义库中或控制器内部。
是。
,您应该使用CI库来处理用户注册和每页授权。
这是一个有关如何实现的非常简单的示例。请记住,CI使用MVC模式
class Reports extends CI_Controller {
public function __construct() {
parent::__construct();
// load database if needed
// load a model if needed
}
public function page() {
//get the page requested
$page_id = $this->uri->segments(2);
// based on the page_id do something.
$data[\'somedata\'] = \'About us data here\';
// this is an actual file loaded from the template view
$data[\'maincontent\'] = \'my_page\';
$this->load->view(\'template\',$data);
}
}
class About extends CI_Controller {
public function __construct() {
parent::__construct();
// load database if needed for this page
}
public function page() {
// same here
//get the page requested
$page_id = $this->uri->segments(2);
// based on the page_id do something.
$data[\'somedata\'] = \'About us data here\';
// this is an actual file loaded from the template view
$data[\'main_content\'] = \'my_about_page\';
$this->load->view(\'template\',$data);
}
}
在模板文件中
$this->load->view(\'template/header\');
$this->load->view(\'template/nav\');
$this->load->view($main_content);
$this->load->view(\'template/footer\');