CI基本理解

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)加載
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 控制器1.文件名不需要加后綴,全部小寫2.類名首字母大寫,繼承CI_Controller基類3.以下劃線開頭或者非...
    棟棟曉閱讀 1,617評(píng)論 1 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • Getting Started Use the Current Stable Version (7.1) Buil...
    Leonzai閱讀 2,065評(píng)論 0 3
  • application:具體項(xiàng)目開發(fā)目錄; system:CI框架代碼; user_guide:用戶手冊(cè),和實(shí)現(xiàn)無...
    依點(diǎn)矯情閱讀 1,952評(píng)論 0 5
  • 關(guān)于昨天,關(guān)于過去,總有些斷斷續(xù)續(xù)的記憶,就像春日里踩著陰濕的青苔,企圖叩開那扇叫做過往的柴門。我應(yīng)該是比宋代那個(gè)...
    渾水摸魚兒閱讀 354評(píng)論 1 3

友情鏈接更多精彩內(nèi)容