thinkphp中的模型操作

thinkphp中的模型操作

新建模型

有兩個方法:

一個是手動創建

1、新建model文件夾

2、新建文件user.php。最好名字和表名對應

3、寫代碼

立即學習PHP免費學習筆記(深入)”;

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

第二個是用命令:

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

模型實例化

有三種方式:

1、用靜態方法

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

2、用加載類

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

3、用系統方法

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

數據庫的查詢操作

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

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

也可以使用系統查詢方法

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

查詢多條數據

用all()方法

//?根據主鍵獲取多個數據 $list?=?User::all('1,2,3'); //?或者使用數組 $list?=?User::all([1,2,3]); foreach($list?as?$key=&gt;$user){ ????echo?$user-&gt;name; } //?使用數組查詢 $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(); //?查詢數據集 $user-&gt;where('name',?'thinkphp') ????-&gt;limit(10) ????-&gt;order('id',?'desc') ????-&gt;select();

查詢某個字段值

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

也可以用動態查詢

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

數據新增

用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();

最常用的是實例化的時候導入post或者get數據,然后保存保存##我是感覺這里比較重要

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

獲取插入數據id

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

插入多條數據

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

也可以使用助手函數

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

數據刪除,需要先查詢,再刪除

刪除一條

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

刪除多條

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

根據條件刪除

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

數據更新,需要先查詢,再更新

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

根據條件更新

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

post提交直接更新

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

強制更新,防止添加

$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);

用數據庫類添加

$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

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享