ci(codeigniter)php框架再探-页面访问流程
来源: 阅读:1348 次 日期:2014-10-27 14:18:11
温馨提示: 小编为您整理了“ci(codeigniter)php框架再探-页面访问流程”,方便广大网友查阅!

在codeigniter(以下简写为ci)的上面一篇文章中,写了ci的基本构架,本文章对新建一个页面以及程序如何访问进行探索,并实际操作实例。

在ci的访问是通过index.php访问,后面可以跟mvc架构中的c然后找到m 然后通过v进行输出。

1.先看访问,ci的访问的是index.php 也就是入口。

2.然后进入路由页面进行路由判断,路由页面在application/config/routes.php

拿实际路由代码解释

$route['default_controller']='pages/view';

//这里定义的是默认c,访问的是pages页面 中view函数(这里可以这样理解,也可以说为方法)

$route['blog']='blog';//设置index.php/blog 访问的是blog

$route['pages/(:any)'] = 'pages/view/$1';

//设置index.php/(:any) 访问的是pages/view/$1 $1表示后面的(:any) 的任意参数

$route['news/(:any)'] = 'news/view/$1';

$route['news'] = 'news';

下面的两个同上面的

3.进行路由后找对应的c层(controllers) c层在application/controllers 下

仍然按照上面的默认访问为news 下面列出news在 controllers的代码,文件名为pages.php

class news extends ci_controller {

public function __construct(){//初始化

parent::__construct();

//必须进行父类的初始化

$this->load->model('news_model');

//如果没有数据交互可以没有model的调用

}

public function index(){

//定义的index函数,如果没有controller的函数部分,则默认调用index汉化

$data['news']=$this->news_model->get_news();

//调用上面初始化的model进行数据查询,并返回给data数组,这里定义的get_news要看下面的model

$data['title'] = 'news archive';//设置data数据

$this->load->view('templates/header', $data);

//调用view中的templates/header页面 进行页面展示,并将data数据传递给view

$this->load->view('news/index', $data);

//这里调用view中的 news/index 页面,并传递$data 数据

$this->load->view('templates/footer');//不传递任何数据

}

public function view($slug){

//view函数,如果参数$slug存在则进行查询,如果不存在则显示404错误

$data['news_item'] = $this->news_model->get_news($slug);

//这里定义的get_news要看下面的model

if (empty($data['news_item']))show_404();

//如果获取的内容为空,或者不能获取,则展示404错误

$data['title'] = $data['news_item']['title'];

//同样将数据给data,并通过view进行传值。

$this->load->view('templates/header', $data);

$this->load->view('news/view', $data);

$this->load->view('templates/footer');

}

}

4,下面介绍model层,进行的是数据调用和逻辑控制等,在application/models 下,文件名news_model.php

看news_model代码如下:

class news_model extends ci_model{

public function __construct(){

$this->load->database();//调用数据库,以后说数据库设置

}

public function get_news($slug=false){//这里是上面调用的get_news

if($slug===false){//看是否有查询参数,如果没有获取全部新闻

$query=$this->db->get('news');

return $query->result_array();

}//如果有,则按照条件进行查询,数据调用以后令讲。

$query = $this->db->get_where('news',array('slug'=>$slug));

return $query->row_array();

}

}

5.最后面的是view视图 在application/views/news/view.php

代码如下:

echo '<h2>'.$news_item['title'].'</h2>';

echo $news_item['text'];

echo $news_item['id'];

在页面输入 http://localhost/index.php/news 进行访问了

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map