## 獲取單個數據
獲取單個數據的方法包括:
取出主鍵為1的數據
~~~
$user = UserModel::get(1);
echo $user->user_nickname;
// 使用數組查詢
$user = UserModel::get(['user_nickname' => '老貓']);
// 使用閉包查詢
$user = UserModel::get(function($query){
$query->where('user_nickname', 'thinkphp');
});
echo $user->user_nickname;
~~~
如果你是在模型內部,請不要使用$this->user\_nickname的方式來獲取數據,請使用$this->getAttr('user\_nickname') 替代。
或者在實例化模型后調用查詢方法
~~~
$user = new UserModel();
// 查詢單個數據
$user->where('user_nickname', '老貓')
->find();
~~~
get或者find方法返回的是當前模型的對象實例,可以使用模型的方法。
## 獲取多個數據
取出多個數據:
~~~
// 根據主鍵獲取多個數據
$users = UserModel::all('1,2,3');
// 或者使用數組
$users = UserModel::all([1,2,3]);
foreach($users as $key=>$user){
echo $user->user_nickname;
}
// 使用數組查詢
$users = UserModel::all(['user_status'=>1]);
// 使用閉包查詢
$users = UserModel::all(function($query){
$query->where('user_status', 1)->limit(3)->order('id', 'asc');
});
foreach($users as $key=>$user){
echo $user->name;
}
~~~
數組方式和閉包方式的數據查詢的區別在于,數組方式只能定義查詢條件,閉包方式可以支持更多的連貫操作,包括排序、數量限制等。
或者在實例化模型后調用查詢方法
~~~
$user = new UserModel();
// 查詢數據集
$user->where('user_nickname', '老貓')
->limit(10)
->order('id', 'desc')
->select();
~~~
模型的all方法或者select方法返回的是一個包含模型對象的二維數組或者數據集對象。
## 數據集循環
模型select,all,paginate方法查詢出來的是數據集,都是`think/Collection`子類的實例,對于數據集的循環,你可以使用多種方法,第一種就是 foreach,第二是 for,第三種是使用 collection 自帶的 each 方法。注意前兩種方法不能在循環時更改數據集里的數據,你不能把它當一個數組直接用鍵值更改,如果你想循環時更改數據集里的數據,只能使用第三種方法。
舉例如下:
~~~
$user = new UserModel();
// 查詢數據集
$user
->limit(10)
->order('id', 'desc')
->select();
$user->each(function($item, $key){
//對$item進行數據更改并返回$item
$item['user_nickname']='老貓不老';
return $item;
});
$user->each(function($item, $key){
// 如果想終止循環返回 false 就可以了
return false;
});
~~~
- 序言
- 基礎
- 功能介紹
- 目錄結構
- 正版申明
- 安裝教程
- 狀態參數
- 第三方接口
- 店鋪狀態
- 控制器
- 控制器定義
- 控制器模板賦值
- 控制器模板渲染
- 前臺控制器
- 前臺用戶控制器
- 后臺控制器
- 跳轉,AJAX返回和重定向
- URL生成
- 請求
- 請求信息
- 輸入變量
- 請求類型
- 獲取請求頭信息
- 偽靜態
- 更多
- 系統函數
- user_info 用戶數據信息
- add_payment 創建支付訂單
- 系統預覽
- 前臺預覽
- 后臺預覽
- 數據庫
- 數據庫配置
- 添加數據
- 更新數據
- 查詢數據
- 刪除數據
- 事務操作
- 更多數據庫操作
- 模型
- 模型定義
- 添加數據
- 更新數據
- 查詢數據
- 刪除數據
- API
- 站點接口
- 滾動幻燈
- 商品列表
- 商品信息
- 購買商品
- 用戶接口
- 個人信息
- 用戶登錄
- 用戶注冊
- 用戶退出
- 充值接口
- 在線充值
- 支付回調
- 訂單接口
- 訂單列表
- 其他接口
- 規范
- 狀態碼說明
- 版本號
- API路由
- 模板標簽
- 模板常量
- 普通標簽
- 變量輸出
- 系統變量
- 請求參數
- 使用函數
- 使用默認值
- 使用運算符
- 三元運算
- 原樣輸出
- 模板注釋
- 模板目錄
- 包含文件
- 模板布局
- 系統標簽
- 全局標簽
- 源碼標簽
- 服務標簽
- 網站標簽
- 域名標簽
- 任務標簽
- 需求標簽
- 推廣標簽
- 菜單標簽
- 內置標簽
- 循環輸出標簽
- 比較標簽
- 條件判斷
- 標簽嵌套
- 原生PHP
- 定義標簽
- 專題
- 緩存
- Session
- Cookie
- 分頁
- 驗證碼
- 文件上傳
- 第三方擴展
- Swoole
- 擴展插件
- 社會化登錄