TP框架下模型及連貫操作
今天主要講了些TP框架中模型層的操作及概念
首先:
例項化模型層的兩種方法:
一種是用M()函式,另一種是new Model() 來例項化一個物件
模型一共有三類:基礎類,空模型,自定義模型
基礎類:是隻例項化TP框架封裝好的Model類所獲得的模型物件,可以操作基本的增刪改查,缺點是封裝好的類拓展性很差,只能做這些了
空型別:例項化Model是不加引數,會得到一個空模型,空模型可以用來操控表的一層級,例如返回有多少表,可以使用QUERY()得到
自定義模型:實際上這種方式使用最為頻繁,一個專案不可避免的需要定義自身的業務邏輯實現,就需要針對每個資料表定義一個模型類。
在LIB/MODELS/
去掉表字首的表名(首字母大寫)+Model.class.php
預設情況下,模型類的名字對應表名,例如:
GoodModel.class.php 對應 goods
UserGroupModel.class.php 對應 user_group表
如果類名和表名不一致,要在類中定義$tableName屬性儲存對應的表名:
protected $tableName = 'book';
建立類是要繼承model類,否則很多基本模型的方法應該無法使用:
Class GoodModel extends Model{}
自定義模型例項化方法:使用D()函式,D方法可以自動檢測模型類,如果存在自定義的模型類,則例項化自定義模型類,如果不存在,則會例項化Model基類,同時對於已例項化過的模型,不會重複去例項化。
D方法還可以支援跨專案和分組呼叫:
//例項化TP_new專案的user模型:
$user=D(‘TP_new://user’);
//例項化admin分組中的user模型:
$user=D(‘admin:/user’);
連貫操作:
連貫操作主要用於查詢資料,可以將資料查詢出來就可以刪改查了
連貫操作使用的函式都是在model中封裝好的。可以直接呼叫,
假如我們現在要查詢一個User表的滿足狀態為1的前10條記錄,並希望按照使用者的建立時間排序 :$User->
方法在手冊中有,這裡不詳細說了