5 回答

TA貢獻1735條經(jīng)驗 獲得超5個贊
當(dāng)需要用到數(shù)據(jù)庫時,就需要創(chuàng)建model,創(chuàng)建的模型不需要寫任何東西就能使用,因為他繼承了thinkphp/model, 當(dāng)然你也可寫自己的需要的方法,然后用D()直接實例化就能調(diào)用里面的方法啦!

TA貢獻1802條經(jīng)驗 獲得超5個贊
比如已有一個零件模型A,現(xiàn)在要新建一個零件B,其為零件A的一個改型,B與A的差別僅僅在于多了一個小孔,這時候,如果重新按照A的建立過程在B中重建特征,無疑很浪費時間,并且B作為A的一個改型,如果重建所有A的特征,則將來要修改A的某些參數(shù)的時候,也要將B的相對參數(shù)手工修改,增加了模型出錯的隱患。所以,很自然的,會想到有這種用法,就是將零件A的實體(非特征)作為一個外部實體參照完全的調(diào)用進零件B(類似調(diào)用一個IGES,STEP等格式的實體),然后在B中建立獨屬于B的特征。這樣,將來如果A被修改,則B中只要重新生成一下A的參照實體,則B也被同步修改。以前我是用PROE的,用過PROE的弟兄應(yīng)該知道有一個外部模型參考的命令,想必CATIA中應(yīng)該也有類似的功能,怎樣實現(xiàn)??PUBLICATION功能,我也看過,不過只知道怎樣發(fā)布,那么如何在新零件中調(diào)用?

TA貢獻1811條經(jīng)驗 獲得超6個贊
thinkphp的模型,默認(rèn)情況是一個數(shù)據(jù)表對應(yīng)一個Model類.
創(chuàng)建 model類文件的方法是:
在Model文件夾下創(chuàng)建 XxxModel.class.php
例如:數(shù)據(jù)表名稱 test
則在Model文件夾下創(chuàng)建類文件:TestModel.class.php
可以用下面兩種方法去創(chuàng)建一個數(shù)據(jù)表model對象:
第一種:$Test = D('Test')
第二種:$Test = new Model('Test')
如果你的模型是沒有確定的數(shù)據(jù)表可以對應(yīng)(或者說需要操作多個數(shù)據(jù)表),在這種情況下,
TP提供了一個機制來解決這樣的問題,尤其是你需要經(jīng)常使用原生SQL的時候,這個機制會非常有幫助。
下面來看一段代碼:代碼:
$Model = new Model();
$list = $Model->query('select * from think_user where status=1');
當(dāng)我們直接實例化Model基類的時候,是不會進行任何數(shù)據(jù)庫的連接的,也不會緩存任何數(shù)據(jù)表的字段信息,所以這個模型更加純凈一點,開銷也相當(dāng)比較小。
當(dāng)然,并不是說,在這種方式下就只能使用原生查詢,你可以很好的利用新版的連貫操作功能來查詢數(shù)據(jù)。例如:代碼:
$Model = D(); // 和上面的new Model()等效
// TP的連貫操作的優(yōu)勢之一就是可以動態(tài)設(shè)置要查詢的數(shù)據(jù)表
$list = $Model->field('id,name')->table('think_user')->where('status=1')->findall();
添加回答
舉報