模型定義
一.定義模型
1. 定義一個(gè)與數(shù)據(jù)庫(kù)相匹配的模型
class User extends Model{ }
2. 模型會(huì)自動(dòng)對(duì)應(yīng)數(shù)據(jù)表,模型類(lèi)的命名規(guī)則是除去表前綴(例如:tp_)的數(shù)據(jù)表名稱(chēng),采用駝峰法命名,并且首字母大寫(xiě),例如:
tp_user(表名) => User(模型名)
tp_user_type(表名) => UserType(模型名)
3. 如果擔(dān)心模型的名稱(chēng)和PHP關(guān)鍵字沖突,可以啟用類(lèi)后綴功能,只需要在應(yīng)用配置文件app.php中設(shè)置:
// 開(kāi)啟應(yīng)用類(lèi)庫(kù)后綴 'class_suffix' => true,
4. 設(shè)置完畢后,所有的控制器名與類(lèi)名都要加上Controller與Model,例如:
Class UserModel
Class UserController
二.模型設(shè)置
1. 默認(rèn)主鍵是id,如果想設(shè)置其他主鍵,類(lèi)似于uid:
protected $pk = 'uid';
2. 在控制器調(diào)用模型的時(shí)候,如果控制器類(lèi)名與模型名重復(fù),可以設(shè)置別名:
use apptestmodelUser as UserModel;
3. 在模型定義中也可以在模型中設(shè)置其他表名:
protected $table = 'tp_other';
4. 模型同控制器一樣也支持初始化,這里必須設(shè)置static靜態(tài)方法,具體如下:
protected static function init() { //初始化內(nèi)容 }
三.模型操作
1.模型操作與數(shù)據(jù)庫(kù)操作一致,但是模型操作不需要指定表名,例如:
數(shù)據(jù)庫(kù)操作:
Db::name('user')->all ();
模型操作:
User:all();
2. 模型操作與數(shù)據(jù)庫(kù)操作返回的結(jié)果類(lèi)型不同,數(shù)據(jù)庫(kù)操作返回的結(jié)果是一個(gè)(二維)數(shù)組[ [ ] ],而模型操作返回的結(jié)果是一個(gè)結(jié)果集[ { } ]。
推薦教程:《TP5》