CI2框架學習總結

一、控制器
1.文件名全小寫且不用像tp一樣加后綴(例:user.php)
2.所有控制器直接或間接繼承CI_Controller
3.類內方法基本上都是加public修飾
4.方法名以下劃線 _ 開頭的方法,只能在內部調用不能直接訪問

二、視圖
1.所有視圖放在views文件夾內,最好在文件夾里多建幾個文件夾,按模塊區(qū)分
使用$this->load->view(‘folder/file’);加載視圖
視圖中不使用模板引擎,直接使用原生PHP輸出變量

//分配數組或變量
$this->load->vars(數組/變量);
//循環(huán)變量
<?php foreach($var as $k=>$v):?>
  <?=$v[‘id’]?>
  <?=$v[‘name’]?>
<?php endforeach;?>
//條件判斷
<?php if(condition):?>
  Code
<?php endif;?>

2.接收GET方法傳遞的參數$this->uri->segment(位置)
(例:www.douyu.com/index.php/live/index/id/1)
獲取這個id值就是$this->uri->segment(4);//位置是從入口文件后開始數
當然,也可以不寫id,(例:www.douyu.com/index.php/live/index/1)
代碼為$this->uri->segment(3);

3.接收POST方法傳遞的參數$this->input->post(‘input標簽中的name值’);
<input name=’example’>示例</input>
獲取以上標簽的value值就是$this->input->post(‘example’);

4.返回ajax請求

$data={OBJECT};
$this->output->set_header('Content-Type: application/json; charset=utf-8');
echo json_encode($data);

以上兩行代碼相當于tp中的$this->ajaxReturn($data);

三、模型
1.準備工作
application/config/autoload.php代碼中找到$autoload['libraries']將值改為array('database');
數據庫配置文件在application/config/database.php中作相應的配置

2.CRUD操作

$res=$this->db->get(‘user’);//實例化user表,返回一個對象
$res->result_array();//以數組形式返回user表中的所有數據
$res->row_array();//以數組形式返回user表中的一條數據

$this->db->insert(‘user’,array());//向user表中插入一條數組中的數據
$this->db->insert_id();//返回最近一條插入記錄的id
$this->db->affected_rows();//返回數據庫操作受影響行數(適用以下的更新和刪除操作)

$this->db->update(‘user’,array(),array(‘id’=>3));//將user表中id為3的記錄更新為數組中對應的值

$this->db->delete(‘user’,array(‘id’=>1));//刪除user表中id為1的記錄

3.連貫操作
如果一條SQL語句為’select name from user where id>=10 limit 2,3 order by id asc’;
那么CI的連貫操作就應該為

$this->db->select(‘name’)
  ->from(‘user’)
  ->where(‘id /*中間必須有一個空格,沒有就會報錯)*/  >=’,10)
  ->limit(3,2) //從哪里開始取,取多少條位置和SQL語句的位置是相反的
  ->order_by(‘id asc’)
  ->get()
  ->result_array();

4.連貫操作中where()的補充

where(‘name’,’sam’)  //相當于where `name`=’sam’
where(‘id  (空格)  !=’,1)  //相當于where `id`!=1
where(array(‘name’=>’sam’,’id /*一個空格*/ <’=>2))  //相當于where `name`=’sam’ and id<2

5.如果業(yè)務太復雜使用連貫操作不能滿足,希望使用原生SQL語句則可以使用以下代碼
$this->db->query(SQL語句);

6.查詢最近的一條SQL語句使用以下代碼
$this->db->last_query();

7.最好所有的數據庫操作寫在模型中,以便項目維護
8.模型文件名需要全部小寫,例:user_model.php
9.對應的模型類則應該是 class User_model (注意大小寫)
10.模型類需要直接繼承CI_Model類 (注意大小寫)
11.在控制器中加載模型

$this->load->model(‘User_model’,’user’);//加載User_model模型,并取別名為user
$this->user->add();//調用user模型中的add方法

剩下一點點的補充:
1.Form表單提交里action的地址應該怎么處理
application/config/autoload.php代碼中找到$autoload['helper']將值改為array('url');
action=’<?php echo site_url(‘控制器/方法名’);?>’
2.訪問與入口文件同級folder文件夾中的file文件
路徑應該是’<?php echo base_url();?>folder/file’

使用wafer2中CI3框架的一些注意事項:
wx.request中data的值需要是對象,使用的是GET方法傳遞
不管是控制器還是模型,文件名和類名必須完全一致,且首字母必須大寫

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,699評論 19 139
  • PHP 學習目錄 ├─PHP視頻教程 1 LAMP網站構建 │ ├─PHP教程 1.1.1 新版視頻形式介紹│ ...
    曹淵說創(chuàng)業(yè)閱讀 16,292評論 29 417
  • 控制器1.文件名不需要加后綴,全部小寫2.類名首字母大寫,繼承CI_Controller基類3.以下劃線開頭或者非...
    棟棟曉閱讀 1,632評論 1 6
  • 1 什么是MVC MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構模式。 MVC...
    申城墨道閱讀 2,151評論 0 10
  • XMPP簡介 原理 概述XMPP(可擴展消息處理現場協議)是基于可擴展標記語言(XML)的協議,它用于即時消息(I...
    樂小文閱讀 6,335評論 1 9

友情鏈接更多精彩內容