久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

ThinkPHP開(kāi)發(fā)指南-模型之ActiveRecord

來(lái)自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(dǎo)航:上一頁(yè)

ThinkPHP實(shí)現(xiàn)了ActiveRecords模式的ORM模型,采用了非標(biāo)準(zhǔn)的ORM模型:表映射到類(lèi),記錄映射到對(duì)象。最大的特點(diǎn)就是使用方便和便于理解(因?yàn)椴捎昧藢?duì)象化),提供了開(kāi)發(fā)的最佳體驗(yàn),從而達(dá)到敏捷開(kāi)發(fā)的目的。下面我們用AR模式來(lái)?yè)Q一種方式重新完成CURD操作。

  • 創(chuàng)建數(shù)據(jù)

PHP代碼

$User = M("User"); // 實(shí)例化User對(duì)象    

// 然后直接給數(shù)據(jù)對(duì)象賦值    

$User->name = 'ThinkPHP';    

$User->email = 'ThinkPHP@gmail.com';   

// 把數(shù)據(jù)對(duì)象添加到數(shù)據(jù)庫(kù)

PHP代碼

$User->add();   

如果使用了create方法創(chuàng)建數(shù)據(jù)對(duì)象的話,仍然可以在創(chuàng)建完成后進(jìn)行賦值

PHP代碼

$User = D("User"); 

PHP代碼

$User->create();   

 // 創(chuàng)建User數(shù)據(jù)對(duì)象,默認(rèn)通過(guò)表單提交的數(shù)據(jù)進(jìn)行創(chuàng)建

// 增加或者更改其中的屬性

PHP代碼

$User->status = 1;    

$User->create_time = time();   

// 把數(shù)據(jù)對(duì)象添加到數(shù)據(jù)庫(kù)

PHP代碼

$User->add();    
  • 查詢(xún)記錄

AR模式的數(shù)據(jù)查詢(xún)比較簡(jiǎn)單,因?yàn)楦嗲闆r下面查詢(xún)條件都是以主鍵或者某個(gè)關(guān)鍵的字段。這種類(lèi)型的查詢(xún),ThinkPHP有著很好的支持。先舉個(gè)最簡(jiǎn)單的例子,假如我們要查詢(xún)主鍵為8的某個(gè)用戶(hù)記錄,如果按照之前的方式,我們可能會(huì)使用下面的方法:

PHP代碼

$User = M("User"); // 實(shí)例化User對(duì)象    

// 查找id為8的用戶(hù)數(shù)據(jù)    

$User->where('id=8')->find();   

用AR模式的話可以直接寫(xiě)成:

PHP代碼

$User->find(8);   

如果要根據(jù)某個(gè)字段查詢(xún),例如查詢(xún)姓名為T(mén)hinkPHP的可以用:

PHP代碼


$User = M("User"); // 實(shí)例化User對(duì)象    

$User->getByName("ThinkPHP");   

這個(gè)作為查詢(xún)語(yǔ)言來(lái)說(shuō)是最為直觀的,如果查詢(xún)成功,查詢(xún)的結(jié)果直接保存在當(dāng)前的數(shù)據(jù)對(duì)象中,在進(jìn)行下一次查詢(xún)操作之前,我們都可以提取,例如獲取查詢(xún)的結(jié)果數(shù)據(jù):

PHP代碼

echo $User->name;    

echo $User->email;   

如果要查詢(xún)數(shù)據(jù)集,可以直接使用:

 // 查找主鍵為1、3、8的多個(gè)數(shù)據(jù)

PHP代碼

$userList = $User->select('1,3,8');    

更新記錄在完成查詢(xún)后,可以直接修改數(shù)據(jù)對(duì)象然后保存到數(shù)據(jù)庫(kù)。

PHP代碼

$User->find(1); // 查找主鍵為1的數(shù)據(jù)    

$User->name = 'TOPThink'; // 修改數(shù)據(jù)對(duì)象    

$User->save(); // 保存當(dāng)前數(shù)據(jù)對(duì)象   

上面這種方式僅僅是示例,不代表保存操作之前一定要先查詢(xún)。因?yàn)橄旅娴姆绞狡鋵?shí)是等效的:

PHP代碼

$User->id = 1;    

$User->name = 'TOPThink'; // 修改數(shù)據(jù)對(duì)象    

$User->save(); // 保存當(dāng)前數(shù)據(jù)對(duì)象   
  • 刪除記錄

可以刪除當(dāng)前查詢(xún)的數(shù)據(jù)對(duì)象

PHP代碼

$User->find(2);    

$User->delete(); // 刪除當(dāng)前的數(shù)據(jù)對(duì)象    

或者直接根據(jù)主鍵進(jìn)行刪除    

$User->delete('8'); // 刪除主鍵為8的數(shù)據(jù)  

$User->delete('5,6'); // 刪除主鍵為5、6的多個(gè)數(shù)據(jù)