5 回答

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

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
public function funcA($catID){
return $this->funcB($catID);
}

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

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