CodeIgniter使用总结

一、ci安装与配置

1、下载

下载地址:http://codeigniter.org.cn/user_guide/installation/downloads.html

1:解压压缩包,然后将文件夹的内容全部上传到服务器上的web根目录,如/www/web/

2:找到application/config/config.php,设置网站根目录:

$config['base_url'] = '';

2、数据库连接

如果你打算使用数据库,打开 application/config/database.php 文件设置数据库参数。

二、路由

1、url

在 CI 框架中,一个 URL 和它对应的控制器中的类以及类中的方法是一一对应的,如:www.test.com/user/info/zhaoyingnan

其中 user 对应的就是控制器中的 user 类,而 info 则对应 user 类中的 info 方法,zhaoyingnan 则是传递的参数

2、自定义路由规则

如果我不想用www.test.com/user/info/zhaoyingnan 这个URL,而是改成 www.test.com/member/zhaoyingnan,

此时就需要一个自定义的路由规则,当 URL 地址为

www.test.com/member/zhaoyingnan 的时候,实际请求的应该是

www.test.com/user/info/zhaoyingnan

在这里,我推荐使用的正则表达式,其他方法不提:首先找到配置路由规则的文件:application/config/routes.php

/**
 * @author  zhaoyingnan
 * 自定义路由规则
 **/
$route['member/(\w+)/?$'] =   'user/info/$1';

3、ci重定向

三、视图

1、视图创建

视图的目录是application/views

2、控制器中视图的加载

$this->load->view('template',$date);

3、加载多个视图

如果有多个调用,那么他们将会被合并到一起:

例如,你可能希望有一个标题视图、一个菜单视图、一个内容视图、和一个页脚视图。

function index()
{
      $data['page_title'] = 'Your title';
      $this->load->view('header');
      $this->load->view('menu');
      $this->load->view('content', $data); //这里调用content模板的同时,将变量分配给了视图文件
      $this->load->view('footer');
}

4、向视图添加动态数据

调用模板的同时赋值给视图:将控制器的数据添加到视图的时候,可以是任意的基本数据类型,和复合数据类型,对象或者数组都支持

$data = array();
$data['test'] = array();
$this->load->view('show.html', $data);

页面需要echo $test而不是 $data

5、将视图作为数据返回

  view函数第三个可选参数可以改变函数的行为,它让视图作为字符串返回 而不是显示到浏览器中,这在你想对视图数据做某些处理时很有用。如果你将该参数设置为 TRUE , 该方法返回字符串,默认情况下为 FALSE ,视图将显示到浏览器。如果你需要返回的数据, 记住将它赋值给一个变量:

$buffer = $this->load->view('blogview', $data, true);

view方法中的第三个参数表示不输出视图,而只是将结果返回给一个变量。

6、视图中的标签——没有标签,使用php语法。

<?php foreach ($productList as $item):?>

		<tr>
			<td><?php echo $item['title'];?></td>
			<td><?php echo $item['type_name'];?></td>
			<td><?php echo $item['price'];?></td>
			<td><?php echo $item['img'];?></td>
			<td><?php echo $item['describe'];?></td>
			
		<tr>
<?php endforeach;?>

四、CI中的load理解

load实际上是Controller的一个成员。

CI_controller初始化的时候(system/core/Controller.php):

$this->load =& load_class('Loader', 'core');

在controller类中调用common类中的load_class载入了loader文件,然后new了

一个loader核心类的实例,并把该实例对象赋值给$this->load,所以通过$this->load来调用loader核心类中的方法;

换句话说,load实际上是Loader的实例,它是ci的加载器,主要负责CI的类库的加载,例如:

$this->load->library()  //加载核心类
$this->load->model()  //加载模型
$this->load->view()   //加载视图文件

五、模型的使用

1、模型创建

模型存放目录:application/models/

1:创建model就是创建一个类文件,model必须继承数据核心类CI_Model,同时重载父类中的构造方法:

class Model名 extends CI_Model  //Model名必须和文件名相同;

Model名第一个字母必须大写;

2:如何在模型中使用Active Record 类中的方法:

$this->db->方法名(参数)

2、模型映射表设置

$this->load->database();//实例化db属性

在实例化db之后,可以运用该对象的丰富的函数来对数据库进行查改删增的操作。

3、控制器中调用模型

$this->load->model(模型名)

$this->模型名->方法名  //因为是模型名,所以一个控制器中可加载多个模型

也可以在控制器构造函数中统一加载

class Shop extends MY_Wx_Controller {	
	public function __construct()	{
		parent::__construct();
		$this->load->model('shop_model', 'shop');  //第二个参数是模型的别名
$this->load->model('department_model', 'department');
   }
}

4、模型中对数据操作

http://www.php.cn/php-weizijiaocheng-403586.html

5、CI 多表关联查询

方法一:

$this->db->query("sql语句");//直接写sql语句

方法二:

#多表关联查询

$data=$this->db->from('goods')

->join('shop','shop.shopid=goods.shopid')

->join('category','category.cid=goods.cid')

->join('locality','locality.lid=goods.lid')

->get()->result_array();

return $data;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值