1. 程式人生 > >ThinkPHP5.0 模型查詢操作

ThinkPHP5.0 模型查詢操作

asc div code all 個數 關聯 開啟 val user

1、獲取單個數據

//取出主鍵為1的數據
$user = User::get(1);
echo $user->name;

// 使用數組查詢
$user = User::get([‘name‘ => ‘thinkphp‘]);

// 使用閉包查詢
$user = User::get(function($query){
    $query->where(‘name‘, ‘thinkphp‘);
});
echo $user->name;

//實例化模型後調用查詢
$user = new User();
// 查詢單個數據
$user->where(‘name‘, ‘thinkphp‘)->find();

2、獲取多個數據

// 根據主鍵獲取多個數據
$list = User::all(‘1,2,3‘);
// 或者使用數組
$list = User::all([1,2,3]);
foreach($list as $key=>$user){
    echo $user->name;
}
// 使用數組查詢
$list = User::all([‘status‘=>1]);
// 使用閉包查詢
$list = User::all(function($query){
    $query->where(‘status‘, 1)->limit(3)->order(‘id‘, ‘asc‘);
});
foreach($list as $key=>$user){ echo $user->name; } //實例化模型後調用查詢 $user = new User(); // 查詢數據集 $user->where(‘name‘, ‘thinkphp‘)->limit(10)->order(‘id‘, ‘desc‘) ->select();

3、獲取某個字段或者某個列的值

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

4、動態查詢

// 根據name字段查詢用戶
$user = User::getByName(‘thinkphp‘);

// 根據email字段查詢用戶
$user = User::getByEmail([email protected]);

5、通過Query類查詢

User::where(‘id‘,‘>‘,10)->select();
User::where(‘name‘,‘thinkphp‘)->find();

6、數據分批處理

User::chunk(100,function($users){
    foreach($users as $user){
        // 處理user模型對象
    }
});

7、查詢緩存(get方法和all方法的第三個參數表示是否使用查詢緩存,或者設置緩存標識

//由於第二個參數是關聯預載入定義,V5.0.6+版本開始,可以直接在第二個參數傳入true表示開啟查詢緩存。
$user = User::get(1,‘‘,true);
$list  = User::all(‘1,2,3‘,‘‘,true);

ThinkPHP5.0 模型查詢操作