thinkphp中的模型操作

thinkphp中的模型操作

新建模型

有兩個(gè)方法:

一個(gè)是手動(dòng)創(chuàng)建

1、新建model文件夾

2、新建文件user.php。最好名字和表名對(duì)應(yīng)

3、寫代碼

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

<?php namespace appindexmodel; use thinkModel; class User extends Model { //如果表名和文件名不是對(duì)應(yīng)的,用下面代碼修改 protected $table = &#39;think_user&#39;;     }

第二個(gè)是用命令:

&gt;php?think?make:model?index/Blog

模型實(shí)例化

有三種方式:

1、用靜態(tài)方法

use?appindexmodelUser; ?$li=?User::get(1);

2、用加載類

use?thinkLoader; $user=?Loader::model('user'); ?$li=?$user::get(1);

3、用系統(tǒng)方法

$user=?model('User'); ?$li=?$user::get(1);

數(shù)據(jù)庫的查詢操作

get的意思是,查詢主鍵為1的數(shù)據(jù)。后面是查詢name=thinkphp的數(shù)據(jù)

//取出主鍵為1的數(shù)據(jù) $user?=?User::get(1); //?使用數(shù)組查詢 $user?=?User::get(['name'?=&gt;?'thinkphp']);

也可以使用系統(tǒng)查詢方法

$user?=?new?User(); $user-&gt;where('name',?'thinkphp')-&gt;find();

查詢多條數(shù)據(jù)

用all()方法

//?根據(jù)主鍵獲取多個(gè)數(shù)據(jù) $list?=?User::all('1,2,3'); //?或者使用數(shù)組 $list?=?User::all([1,2,3]); foreach($list?as?$key=&gt;$user){ ????echo?$user-&gt;name; } //?使用數(shù)組查詢 $list?=?User::all(['status'=&gt;1]); //?使用閉包查詢 $list?=?User::all(function($query){ ????$query-&gt;where('status',?1)-&gt;limit(3)-&gt;order('id',?'asc'); }); foreach($list?as?$key=&gt;$user){ ????echo?$user-&gt;name; }

或者用查詢方法查看

$user?=?new?User(); //?查詢數(shù)據(jù)集 $user-&gt;where('name',?'thinkphp') ????-&gt;limit(10) ????-&gt;order('id',?'desc') ????-&gt;select();

查詢某個(gè)字段值

//?獲取某個(gè)用戶的積分 User::where('id',10)-&gt;value('score'); //?獲取某個(gè)列的所有值 User::where('status',1)-&gt;column('name'); //?以id為索引 User::where('status',1)-&gt;column('name','id'); User::where('status',1)-&gt;column('id,name');

也可以用動(dòng)態(tài)查詢

//?根據(jù)name字段查詢用戶 $user?=?User::getByName('thinkphp'); //?根據(jù)email字段查詢用戶 $user?=?User::getByEmail('thinkphp@qq.com');

數(shù)據(jù)新增

用save方法

$user???????????=?new?User; $user-&gt;name?????=?'thinkphp'; $user-&gt;email????=?'thinkphp@qq.com'; $user-&gt;save();

用data批量方法保存

$user?=?new?User; $user-&gt;data([ ????'name'??=&gt;??'thinkphp', ????'email'?=&gt;??'thinkphp@qq.com' ]); $user-&gt;save();

最常用的是實(shí)例化的時(shí)候?qū)雙ost或者get數(shù)據(jù),然后保存保存##我是感覺這里比較重要

//如果需要過濾非數(shù)據(jù)表字段的數(shù)據(jù),可以使用: $user?=?new?User($_POST); //?過濾post數(shù)組中的非數(shù)據(jù)表字段數(shù)據(jù) $user-&gt;allowField(true)-&gt;save();  //如果你通過外部提交賦值給模型,并且希望指定某些字段寫入,可以使用: $user?=?new?User($_POST); //?post數(shù)組中只有name和email字段會(huì)寫入 $user-&gt;allowField(['name','email'])-&gt;save();

獲取插入數(shù)據(jù)id

$user???????????=?new?User; $user-&gt;name?????=?'thinkphp'; $user-&gt;email????=?'thinkphp@qq.com'; $user-&gt;save(); //?獲取自增ID echo?$user->user_id;

插入多條數(shù)據(jù)

$user?=?new?User; $list?=?[ ????['name'=&gt;'thinkphp','email'=&gt;'thinkphp@qq.com'], ????['name'=&gt;'onethink','email'=&gt;'onethink@qq.com'] ]; $user-&gt;saveAll($list);

也可以使用助手函數(shù)

//?使用model助手函數(shù)實(shí)例化User模型 $user?=?model('User'); //?模型對(duì)象賦值 $user-&gt;data([ ????'name'??=&gt;??'thinkphp', ????'email'?=&gt;??'thinkphp@qq.com' ]); $user-&gt;save();  或者進(jìn)行批量新增: $user?=?model('User'); //?批量新增 $list?=?[ ????['name'=&gt;'thinkphp','email'=&gt;'thinkphp@qq.com'], ????['name'=&gt;'onethink','email'=&gt;'onethink@qq.com'] ]; $user-&gt;saveAll($list);

數(shù)據(jù)刪除,需要先查詢,再刪除

刪除一條

$user?=?User::get(1); $user-&gt;delete();

刪除多條

User::destroy(1); //?支持批量刪除多個(gè)數(shù)據(jù) User::destroy('1,2,3'); //?或者 User::destroy([1,2,3]);

根據(jù)條件刪除

//?刪除狀態(tài)為0的數(shù)據(jù) User::destroy(['status'?=&gt;?0]);  還支持使用閉包刪除,例如: User::destroy(function($query){ ????$query-&gt;where('id','&gt;',10); });  或者通過數(shù)據(jù)庫類的查詢條件刪除 User::where('id','&gt;',10)-&gt;delete();

數(shù)據(jù)更新,需要先查詢,再更新

$user?=?User::get(1); $user-&gt;name?????=?'thinkphp'; $user-&gt;email????=?'thinkphp@qq.com'; $user-&gt;save();

根據(jù)條件更新

$user?=?new?User; //?save方法第二個(gè)參數(shù)為更新條件 $user-&gt;save([ ????'name'??=&gt;?'thinkphp', ????'email'?=&gt;?'thinkphp@qq.com' ],['id'?=&gt;?1]);

post提交直接更新

$user?=?new?User(); //?過濾post數(shù)組中的非數(shù)據(jù)表字段數(shù)據(jù) $user-&gt;allowField(true)-&gt;save($_POST,['id'?=&gt;?1]);  //如果你通過外部提交賦值給模型,并且希望指定某些字段寫入,可以使用: $user?=?new?User(); //?post數(shù)組中只有name和email字段會(huì)寫入 $user-&gt;allowField(['name','email'])-&gt;save($_POST,?['id'?=&gt;?1]);

強(qiáng)制更新,防止添加

$user?=?new?User; $list?=?[ ????['id'=&gt;1,?'name'=&gt;'thinkphp',?'email'=&gt;'thinkphp@qq.com'], ????['id'=&gt;2,?'name'=&gt;'onethink',?'email'=&gt;'onethink@qq.com'] ]; $user-&gt;isUpdate()-&gt;saveAll($list);

用數(shù)據(jù)庫類添加

$user?=?new?User; $user-&gt;where('id',?1) ????-&gt;update(['name'?=&gt;?'thinkphp']); 或者使用: $user?=?new?User; $user-&gt;update(['id'?=&gt;?1,?'name'?=&gt;?'thinkphp']);

推薦教程:《TP5

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊15 分享