1.控制器創(chuàng)建原則:
創(chuàng)新互聯(lián)專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、平和網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、平和網(wǎng)絡(luò)營(yíng)銷(xiāo)、平和企業(yè)策劃、平和品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供平和建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
基本原則:根據(jù)功能,原則上一個(gè)功能項(xiàng)對(duì)應(yīng)控制器中的一個(gè)動(dòng)作
可能多個(gè)功能共享一個(gè)動(dòng)作添加和修改比較接近,根據(jù)條件來(lái)選擇添加還是修改
可能需要輔助方法完成一個(gè)動(dòng)作
基本原則:根據(jù)功能,按照數(shù)據(jù)表結(jié)構(gòu)進(jìn)行劃分控制器類(lèi)
基本原則,項(xiàng)目包含多個(gè)不同用戶角色的功能,如果不區(qū)分模塊,可能會(huì)導(dǎo)致控制器重名,影響代碼閱讀,按照不同角色功能劃分不同模塊
是否有必要?jiǎng)?chuàng)建模塊
控制器文件如何分類(lèi)
控制器動(dòng)作如何制定
2.視圖文件的架設(shè)
靜態(tài)資源文件
組成:圖片 css JavaScript
文件目錄:public/子目錄
布局文件
組成:頁(yè)面頭部,尾部,面包屑,正文
目錄:模塊目錄/view/
視圖文件
一般原則:控制器中的一個(gè)方法對(duì)應(yīng)一個(gè)視圖文件
3.數(shù)據(jù)庫(kù)模型基本使用
連接數(shù)據(jù)庫(kù)
使用配置文件
傳入?yún)?shù)形式
實(shí)例化數(shù)據(jù)庫(kù)操作對(duì)象
使用new Model()創(chuàng)建
使用M()函數(shù)創(chuàng)建
執(zhí)行SQL原生查詢
Query()方法
Dump()函數(shù)測(cè)試結(jié)果
4.數(shù)據(jù)庫(kù)基本操作
字符串查詢
$table = M('tableName');
$results = $table -> where('id > 3')->select();
關(guān)聯(lián)數(shù)組查詢
$condition['id'] = array('neq','3');
$condition['uid'] = array('neq','1');
$results = $table -> where($conditon) -> select();
魔術(shù)方法查詢
$results = $table -> getById('1');//只能獲取指定條件的第一條記錄
統(tǒng)計(jì)數(shù)據(jù)
$count = $table -> count();//統(tǒng)計(jì)表中數(shù)據(jù)
$count = $table ->max('id');
limit
$limit = $table -> limit(3) -> select();//前三條記錄
$limit = $table -> limit(2,2) -> select();//第三條記錄開(kāi)始查詢兩個(gè)
order排序
$order = $table -> order('id desc') ->select();//id降序排列
創(chuàng)建和插入數(shù)據(jù)
Create():在內(nèi)存中創(chuàng)建數(shù)據(jù),不寫(xiě)入數(shù)據(jù)庫(kù),過(guò)濾掉無(wú)效字段(表中沒(méi)有的字段)
工作流程:1.獲取數(shù)據(jù)(POST參數(shù)或者用戶傳入的數(shù)據(jù))2.進(jìn)行數(shù)據(jù)校驗(yàn)3.把傳入的數(shù)據(jù)放到當(dāng)前對(duì)象的data屬性中
參數(shù):1.若沒(méi)有參數(shù),表示插入$_POST[]數(shù)據(jù)2.可以傳入關(guān)聯(lián)數(shù)組數(shù)據(jù)3.可以傳入標(biāo)準(zhǔn)對(duì)象數(shù)據(jù)
Model::MODEL_INSERT Model::MODELUPDATE
返回值:創(chuàng)建好的數(shù)據(jù)對(duì)象組
可以直接為Model對(duì)象添加屬性或修改屬性,以實(shí)現(xiàn)添加內(nèi)存數(shù)據(jù)的目的
Data():基本同create(),不進(jìn)行數(shù)據(jù)校驗(yàn)
Add():把內(nèi)存中的數(shù)據(jù)插入到表中
1沒(méi)有參數(shù),直接使用MODEL對(duì)象的data屬性(create()和data()方法返回)
2附加條件
3是否覆蓋標(biāo)識(shí)(是否覆蓋已經(jīng)存在的主鍵數(shù)據(jù))
4可以直接過(guò)濾掉數(shù)據(jù)表中不存在的字段
5直接使用add(),不會(huì)進(jìn)行數(shù)據(jù)校驗(yàn)
//寫(xiě)入數(shù)據(jù)前進(jìn)行校驗(yàn)
if($this -> create($data))
{
return $this-> add();
}
讀取數(shù)據(jù)
Select():1不傳參查詢表中所有記錄2.傳一個(gè)參數(shù)select(1)主鍵為1的記錄3.select(1,3,5)返回主鍵為135的記錄4傳入false返回當(dāng)前查詢的語(yǔ)句
Find():查詢一條記錄,不傳入?yún)?shù)獲取第一條記錄,find(1)返回主鍵為1的記錄
getField():只傳入一個(gè)參數(shù),獲取第一條記錄的值
where條件:1傳入字符串 2傳入數(shù)組或者對(duì)象,可以過(guò)濾掉非法字符。
limit():limit(1)1.獲取指定條件的1條記錄 limit(2,2)獲取從第一個(gè)參數(shù)開(kāi)始的2條記錄
order():按照指定字段對(duì)記錄進(jìn)行排序,單字段排序和多字段排序
刪除數(shù)據(jù):刪除成功返回刪除的個(gè)數(shù),失敗返回false
$db = M(‘msgs’);
$results = $db –> where(‘id = 1’)-> delete();//刪除id為1的記錄
$results = $db –> where(‘1’)-> delete();//刪除所有記錄
$results = $db -> delete();//不傳參數(shù)返回false
$results = $db -> delete('1,3,5')//刪除主鍵為135的記錄
修改數(shù)據(jù):更新指定條件的數(shù)據(jù)
$data['name'] = "張三";
$results = $db -> where('id = 1') -> save($data)
若傳參,表示更新后要滿足的效果
若不傳參,表示使用當(dāng)前數(shù)據(jù)表操作對(duì)象data屬性中的記錄
更新條件,可以使用where顯示指明更新條件,若無(wú)更新條件,save()參數(shù)中的記錄包含主鍵,更新主鍵對(duì)應(yīng)的記錄,否則不更新。更新成功返回更新的記錄數(shù),更新失敗,返回false
setField:更新個(gè)別字段的值
setInc加 setDec減
5.模型操作類(lèi)
作用:MVC分離相對(duì)徹底,邏輯清晰,適合分工合作,方便實(shí)現(xiàn)一些特性的效果(過(guò)濾,驗(yàn)證,自動(dòng)完成)
創(chuàng)建模型類(lèi):
文件名:數(shù)據(jù)表名Model.class.php
目錄:模塊/model/目錄
類(lèi)名:class數(shù)據(jù)表名Model extends Model
可選屬性:tablePrefixtableName trueTableName dbName _validate(自動(dòng)驗(yàn)證規(guī)則) _auto(自動(dòng)完成規(guī)則)
添加方法用來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯
使用:new方法 D()函數(shù)
6.ActivRecord
表映射到類(lèi),記錄映射到對(duì)象
ORM模型:對(duì)象關(guān)系映射模型
7.session處理
初始化:無(wú)需手動(dòng)調(diào)用,除非有特殊需要的時(shí)候
設(shè)置值:session(鍵,值);
獲取值:session(鍵);
刪除值:session(鍵,null);
判斷值是否存在:session(?鍵);
模板中使用session:判斷session狀態(tài) 輸出session值
控制器中輸出session dump($_SESSION);
present標(biāo)簽用于判斷某個(gè)變量是否已經(jīng)定義
歡迎您,{$Think.session.loginedUser}! | 注銷(xiāo) 8.分頁(yè) 頁(yè)面跳轉(zhuǎn) 分頁(yè)本質(zhì)是:limit查詢 sql語(yǔ)句:select * from msg offset size//從offset開(kāi)始的size條記錄 分頁(yè)鏈接 /home/msg/index/page/1您尚未登錄(登錄) 還沒(méi)有用戶名(注冊(cè))