我将在代码点火器中创建我的第一个站点,这是一个相当基本的站点:
家 登录/注册
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经验的人都可以向我展示他们如何做到这一点的例子吗?
一些特定的Q是:
标题在所有页面上都是相同的。通常我会将其编码为包含if / else以显示突出显示的当前部分。我想我只是把它作为一个包含(视图)并首先通过控制器加载它或将其包含在每个视图中?
我设想有一个名为'user'的模型来处理登录和注册,一个名为'blog'的模型和一个名为'reports'的模型。听起来不错吗?
对于像我这样的静态部分,我想没有模型,我只有一个控制器,每个静态页面都有一个函数?即带有page1(),page2()的about.php,他们所做的只是加载静态视图?
答案 0 :(得分:0)
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.php文件中的$config['subclass_prefix'] = 'MY_';
。
2→是
3→这就是它:D
答案 1 :(得分:0)
我是新手(codeigniter)但是:
对于页眉/页脚,我采用了here的模板策略(第一种方法)。工作得很好。
在模型之前,我会计划控制器 - 每个部分只有一个。我把所有这些都从MY_controller继承而来,我放置了常用的功能。而你的模特似乎对我来说是对的。我认为它们可以作为DAO,或“服务对象”提供对数据库的访问,而不是更多。网站的通用情报(如果需要)应该在自定义库中,或者在控制器内。
是
答案 2 :(得分:0)
您应该使用CI库来处理用户注册和每页授权。 这是一个非常简单的例子,说明如何做到这一点。请注意,CI使用MVC pattern
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');