ThinkPHP5.0 模型查詢操作


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('thinkphp@qq.com');

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM