ThinkPHP的Model操作
几种调用模型的方法:
use think\Controller;
//use app\index\model\App;
use think\Loader;
class Index extends Controller
{
public function index()
{
//$res = App::get(2); 【第一种】
//$app = new App; 【第二种】
$app = Loader::model('App'); 【第三种】
$res = $app->get(4);
$res = $res->toArray();
dump($res);
}
}
使用模型查询数据的方法
【获取一条记录】 get方法和find方法
public function index()
{
$res = App::get(function($query){
$query->where('id','eq',3)->field('name, status');
});
// $res = App::where('name','eq','ipad')->field('name, key')->find();
$res = $res->toArray();
dump($res);
}
【获取多条数据】【all】
public function index()
{
// $res =App::all('1,2,3'); 【字符串形式】
//$res = App::all([2,3,4]); //【数组形式】
$res = App::all(function($query){
$query->where('id','<',5)->field('name,key,status');
});
foreach($res as $val){
$res = $val->toArray();
dump($res);
}
}
where方法直接获取
public function index()
{
// $res = App::where('id','<',5)->select();
// foreach($res as $val){
// $res = $val->toArray();
// dump($res);
// }
$res = App::where('id',1)->value('name');
dump($res);
}
【获取单个字段一条】
public function index()
{
$res = App::where('id',1)->value('name');
dump($res);
}
【获取单个字段多条】
public function index()
{
$res = App::column('name','key');
dump($res);
}
使用模型添加数据
【create方法】
public function index()
{
// $res = App::create([
// 'name'=>'三星',
// 'is_encryption'=>1,
// 'key'=>'sx',
// 'status'=>1
// ]);
//当添加数据库没有的字段时,会报错,且不会添加,加第二个参数,true
// $res = App::create([
// 'name'=>'苹果mac',
// 'is_encryption'=>1,
// 'key'=>'mac',
// 'status'=>1,
// 'momo'=>'123'
// ],true);
//仅允许添加name和status两个字段
$res = App::create([
'name'=>'macbook',
'is_encryption'=>1,
'key'=>'book',
'status'=>1,
'momo'=>'123'
],['name','status']);
dump($res);
}
【save方法】
public function index()
{
// $appModel = new App;
// $res = $appModel->save([
// 'name'=>'手机',
// 'is_encryption'=>1,
// 'key'=>'sj',
// 'status'=>1,
// 'demo'=>111
// ]);
//过滤非数据库字段
// $appModel = new App;
// $res = $appModel->allowField(true)->save([
// 'name'=>'手机',
// 'is_encryption'=>1,
// 'key'=>'sj',
// 'status'=>1,
// 'demo'=>1111
// ]);
$appModel = new App;
$res = $appModel->allowField(['name','is_encryption'])->save([
'name'=>'手机',
'is_encryption'=>1,
'key'=>'sj',
'status'=>1,
'demo'=>1111
]);
dump($res);
}
【添加多条数据】
public function index()
{
$appModel = new App;
$res = $appModel->saveAll([
['name'=>'book'],
['name'=>'cat']
]);
dump($res);
}
使用模型更新数据
【update方法更新】
public function index()
{
// $res = App::update([
// 'id'=>8,
// 'is_encryption'=>1
// ]);
//没有条件的话,update()加第二个参数
// $res = App::update([
// 'is_encryption'=>1,
// ],['id'=>12]);
//还支持闭包函数
$res = App::update([
'is_encryption'=>1
],function($quest){
$quest->where("id",'=',13);
});
dump($res);
}
【where条件更新】【推荐】
public function index()
{
// $res = App::where('id',5)->update([
// 'key'=>'hw'
// ]);
// dump($res);
}
【save方法更新】【推荐】
public function index()
{
// $appModel = new App;
// $res = $appModel->save([
// 'key' => 'mb',
// ],['id'=>8]);
$appModel = new App;
$res = $appModel->save([
'key' => 'sj11',
],function($quest){
$quest->where('id',11);
});
dump($res);
}
【saveAll更新】
public function index()
{
$appModel = new App;
$res = $appModel->saveAll([
['id'=>12,'key'=>'bk'],
['id'=>13,'key'=>'cat']
]);
dump($res);
}
使用模型删除数据
[destroy方法]
public function index()
{
// $res = App::destroy(['id'=>11]);
// dump($res);
// $res = App::destroy(function($quest){
// $quest->where('id',13);
// });
dump($res);
}
[delete方法]
public function index()
{
// $appModel = App::get(12);
// $res = $appModel->delete();
$res = App::where('id','>',7)->delete();
dump($res);
}
【最大值,最小值,平均值,总条数】
public function index()
{
// $res = App::count();
// $res = App::where('id','>',3)->count();
//$res = App::max('id');
//$res =App::where('id','>',5)->max('id');
//$res = App::sum('id'); 【总和】
//$res =App::avg('id'); 【平均值】
//$res =App::min('id');【最小值】
dump($res);
}