PHP的CI框架的基本理解
控制層
視圖層
模型層
操作數(shù)據(jù)庫(kù)
AR操作
CI學(xué)習(xí)
- 訪問url使用的是pathinfo
- 入口文件.php/控制器/動(dòng)作
- 默認(rèn)控制器是welcome
- 默認(rèn)動(dòng)作是index
控制器
- 不需要加后綴。直接是類名.php
- 文件名全部小寫。例如:user.php
- 所有的控制器,直接或間接繼承自CI_Controller類
- 以下劃線開頭的方法,不能夠被請(qǐng)求。
- 只有public的方法,才能作為動(dòng)作
視圖層
- $this->load->view('user_index');//可以加載多次
- $this->load->view('user/index');//區(qū)分路徑
- 分配變量$this->load->vars('title','標(biāo)題');
- 推薦使用短標(biāo)簽
CI的超級(jí)對(duì)象
當(dāng)前的控制器對(duì)象
屬性
$this->load裝載器
$this->load->view()裝載視圖
$this->load->vars()分配變量到視圖
$this->load->database()裝載數(shù)據(jù)庫(kù)操作對(duì)象
$this->load->model()裝載模型對(duì)象
$this->load->helper()裝載幫助
$this->uri操作uri對(duì)象
CI_URI的實(shí)例
- $this->input
是CI_Input類的實(shí)例
CI_Input類提供的方法
$this->input->post('username');//$_POST['username']_
$this->input->server('DOCUMENT_ROOT'); //$_SERVER['DOCUMENT_ROOT'];_
在視圖層直接用$this來訪問超級(jí)對(duì)象。
操作數(shù)據(jù)庫(kù)
在autoload.php中修改$autoload['libraries'] = array('database');即可自動(dòng)加載。
在config中的database.php中,里面前綴參數(shù)可以配置,同時(shí)將交換前置進(jìn)行修改。
'swap_pre' => 'swap_' 這一條寫上之后,在sql語句中的前綴可以寫成swap_,然后自動(dòng)轉(zhuǎn)換成下面的
'dbprefix' => 'blog_'
AR模型(Active Record)
在最新的CI中不用配置AR,已經(jīng)自動(dòng)開啟了
使用獲取數(shù)據(jù),不用自己寫表前綴(前提是已經(jīng)配置了表前綴)。
$res = $this->db->get('users');
// var_dump($res);
foreach($res->result() as $item){
echo $item->id;
echo " ";
echo $item->name;
echo "<br/>";
}
插入,傳入?yún)?shù)是表名和數(shù)據(jù)
$data = array(
'name'=>'usersss'
);
$bool = $this->db->insert('users', $data);
if($bool){
var_dump($bool);
echo $this->db->insert_id();
}
修改,傳入條件是表名,數(shù)據(jù),條件
$data = array(
'name'=>'users666'
);
$bool = $this->db->update('users',$data,array('id'=>3));
var_dump($bool);
刪除,傳入?yún)?shù)表名和條件
$data = array('id'=>'2');
$bool = $this->db->delete('users', $data);
var_dump($bool);
帶條件的查詢
$res = $this->db->select('name')
->from('users')
->where('id >=',3)
->limit(3,2)
->order_by('id desc')
->get();
var_dump($res);
foreach($res->result() as $item){
echo $item->name;
echo "<br />";
}
注意:limit的順序與正常sql語句的順序相反。同時(shí)注意操作符前要有空格
檢查最后執(zhí)行的sql語句
var_dump($this->db->last_query());
簡(jiǎn)單的where條件查詢
$res = $this->db->where('name','user3')->get('users');
$res = $this->db->where('name =','user3')->get('users');
$res = $this->db->where('name like','%user%')->get('users');
where多條件(利用數(shù)組寫參數(shù))
$res = $this->db->where(array('name'=>'users', 'id ='=>121))->get('users');
core層的應(yīng)用擴(kuò)展
在里面可以創(chuàng)建自己的內(nèi)容,然后同過自己寫的內(nèi)容去完成一些重復(fù)的操作。
- 例如
在core文件夾中,創(chuàng)建一個(gè)類,繼承自CI_Controller
在controller文件夾的里面,都繼承自己創(chuàng)建的類
libraries里面可以做擴(kuò)展
前綴可以在config中進(jìn)行修改
CI中相關(guān)url函數(shù)
- load進(jìn)來,$this->load->helper('url');
- site_url('user/insert')使用,會(huì)自動(dòng)解析
- $autoload['helper'] = array('url');自動(dòng)加載