1. 程式人生 > >ThinkPHP的Model操作

ThinkPHP的Model操作

函數 fun pad allow 報錯 允許 save foreach ade

幾種調用模型的方法:

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

ThinkPHP的Model操作