1. 程式人生 > >TP框架下模型及連貫操作

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

where('status=1')->order('create_time')->limit(10)->select();

方法在手冊中有,這裡不詳細說了