1,、創(chuàng)建一個基礎(chǔ)模型:實例化一個系統(tǒng)自帶的數(shù)據(jù)庫操作類
Test.Model.class.php頁面代碼如下:
class TestModel extends Model{
}
|
UserAction.class.php頁面代碼如下:
function test(){
$test=M('test');//表示實例化的是自帶的Model類,,并且傳入test值表示操作的是test表
//等同于$test=new TestModel();
$test=$test->select();
print_r($test);//輸出test表中所有數(shù)據(jù)
} |
2、實例化一個自定義模型
如果數(shù)據(jù)庫操作比較復(fù)雜,,就需要在自定義的Model類中添加一些自定義的數(shù)據(jù)庫操作方法
UserModel.class.php頁面代碼如下:
class UserModel extends Model{
function pyj(){
echo 'pengyanjie';
//其它的一些數(shù)據(jù)庫操作方法
}
} |
UserAction.class.php頁面代碼如下:
function user(){
$user=D('User');//實例化自定義的數(shù)據(jù)庫操作類
//等同于$user=new UserModel();
$user->pyj();//調(diào)用User模型中的pyj方法
} |
或者,,你需要實例化一個表,同時呢,,實例化一個自己寫的自定義的數(shù)據(jù)庫操作類,,代碼如下:
function love(){
$love=M('test','UserModel');
//$love=new UserModel('test');
$list=$love->select();
dump($list);
$love->pyj();
} |
3、實例化一個用戶模型
UserAction.class.php頁面代碼如下:
function user(){
$user=new UserModel();//等同于$user=D('User');
$list=$user->select();
dump($list);
echo $user->aa();
} |
UserModel.class.php頁面代碼如下:
該類名user與表名user相對應(yīng),,所以在UserAction中實例化這個模型的時候就不需要再額外的傳表名了,,代碼如下:
class UserModel extends Model{
function aa(){
echo 'pengyanjie';
}
} |
這個第三種實例化模型方法與第二種的區(qū)別在于:在你的業(yè)務(wù)邏輯當中,通常情況下會有一些公共的業(yè)務(wù)邏輯,,那你用第二種M('表名','模型名');如M('user','CommonModel')會更方便;
第三種實例化模型方法適于于針對所操作表的更加復(fù)雜的業(yè)務(wù)邏輯,,但是它不需要使用到公共業(yè)務(wù)邏輯。(它的業(yè)務(wù)邏輯,,針對用戶表,,它是唯一的,并且不需要在其它模型當中使用),。
4,、實例化一個空模型,它并不知道你要實例化操作時用到的是哪張表,。
$user=new Model();//等價與$user=M();
$list=$user->query('select * from think_user'); //使用傳統(tǒng)的sql語句的方式,,如果這樣的話,就必須要加表前綴
dump($list); |
附:$user=new UserModel();與$user=D('user');的區(qū)別:
(1),、D方法可以自動檢測模型類,,不存在時,它會拋出一個異常,。同時對于已實例化過的模型,,不會去重復(fù)實例化。默認的D方法,,只能應(yīng)用于當前項目下面的模型,。
(2)、如果說,,我這是前臺應(yīng)用,,但是我想實例化后臺項目的模型可以用D搞定。
$user=D('admin','user');//會去自動找admin分組下的user模型類
或者:
$user=D('admin.user');
延伸閱讀:
·
ThinkPHP連接數(shù)據(jù)庫并設(shè)置主從數(shù)據(jù)庫示例
·
ThinkPHP的create方法與自動令牌驗證示例
·
ThinkPHP增刪查改操作示例
·
ThinkPHP無限級分類示例
·
ThinkPHP驗證碼和分頁示例
·
ThinkPHP文件上傳示例
·
ThinkPHP中ajax示例
·
ThinkPHP常用查詢語言大全
·
ThinkPHP多語言支持與多模板支持示例
·
ThinkPHP實現(xiàn)登錄示例
·
thinkphp多表查詢示例
·
ThinkPHP將SESSION存入MYSQL示例
·
ThinkPHP行為擴展Behavior示例
·
ThinkPHP之用戶注冊登錄留言示例
·
合并ThinkPHP配置文件以消除代碼冗余示例