[TOC]
*****
# 定義模型
| 版本 | 調整功能 |
| --- | --- |
| 5.0.5 | `model`或者`Loader::model`方法支持傳入完整的模型類名 |
## 模型定義
定義一個User模型類:
~~~
namespace app\index\model;
use think\Model;
class User extends Model
{
}
~~~
默認主鍵為自動識別,如果需要指定,可以設置屬性:
~~~
namespace app\index\model;
use think\Model;
class User extends Model
{
protected $pk = 'uid';
}
~~~
模型會自動對應數據表,模型類的命名規則是除去表前綴的數據表名稱,采用駝峰法命名,并且首字母大寫,例如:
| 模型名 | 約定對應數據表(假設數據庫的前綴定義是 think\_) |
| --- | --- |
| User | think\_user |
| UserType | think\_user\_type |
如果你的規則和上面的系統約定不符合,那么需要設置Model類的數據表名稱屬性,以確保能夠找到對應的數據表。
## 設置數據表
如果你想指定數據表甚至數據庫連接的話,可以使用:
~~~
namespace app\index\model;
class User extends \think\Model
{
// 設置當前模型對應的完整數據表名稱
protected $table = 'think_user';
// 設置當前模型的數據庫連接
protected $connection = [
// 數據庫類型
'type' => 'mysql',
// 服務器地址
'hostname' => '127.0.0.1',
// 數據庫名
'database' => 'thinkphp',
// 數據庫用戶名
'username' => 'root',
// 數據庫密碼
'password' => '',
// 數據庫編碼默認采用utf8
'charset' => 'utf8',
// 數據庫表前綴
'prefix' => 'think_',
// 數據庫調試模式
'debug' => false,
];
}
~~~
和連接數據庫的參數一樣,`connection`屬性的值也可以設置為數據庫的配置參數,而且也是官方推薦的方式,這樣可以避免把數據庫連接固化在代碼里面。
>[info] 5.0不支持單獨設置當前模型的數據表前綴。
## 模型調用
模型類可以使用靜態調用或者實例化調用兩種方式,例如:
~~~
// 靜態調用
$user = User::get(1);
$user->name = 'thinkphp';
$user->save();
// 實例化模型
$user = new User;
$user->name= 'thinkphp';
$user->save();
// 使用 Loader 類實例化(單例)
$user = Loader::model('User');
// 或者使用助手函數`model`
$user = model('User');
$user->name= 'thinkphp';
$user->save();
~~~
>[info] 實例化模型類主要用于調用模型的自定義方法,更多用法參考后面的章節內容。
- 前言
- 更新說明
- 數據庫說明
- 第一章 前端框架及插件
- 第一節 Bootstrap
- 第二節 Layui
- 第三節 Vue.js
- 1.Element UI
- 第四節 DataTables
- 1.數據源
- 第二章 Thinkphp 5.0
- 控制器
- 第一節 增加
- 第二節 刪除
- 第三節 修改
- 第四節 查詢
- MVC
- 第一節 增加
- 第二節 刪除
- 第三節 修改
- 第四節 查詢
- MVC+AJAX
- 第一節 增加
- 第二節 刪除
- 第三節 修改
- 第四節 查詢
- 小功能
- 第一節 常用函數
- 第二節 隨機數
- 第三節 URL
- 擴展開發
- 第一節 分布式數據庫
- 第二節 內容上傳
- 1.本地上傳
- 2.七牛云上傳
- 第三節 導入導出
- 1.Excel
- 2.Word
- 第四節 發送郵件
- 第五節 模板分離
- 第六節 注冊登錄
- 1.用戶登錄
- 2.用戶注冊
- 3.管理登錄
- 第七節 菜單導航
- 第八節 判斷手機
- 第九節 富文本編輯器
- 1.Ueditor
- 2.CKEditor
- 第十節 購物車
- 第十一節 安全驗證
- 1.默認驗證碼
- 常用API開發
- 第一節 API接口使用
- 第二節 微信開發
- 附件下載
- 第一節 ThinkPHP 優化版
- 第二節 常用后臺模板下載
- 實例源碼
- 第一節 MQ CMS
- 第二節 MQ Edu