版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
TP的手冊相當(dāng)多,其實(shí)不必再出這樣的貼子,論技術(shù),我也是菜鳥一個,同時也在學(xué)習(xí)當(dāng)中??吹秸搲隙嗔瞬簧傩屡笥?,不少在抱怨手冊看不懂,那我就姑且拋磚引玉,嘗試與新朋友們更簡單地、手把手地進(jìn)入TP的應(yīng)用中去。講解過程中有錯的地方,大家?guī)兔χ笧橹鳎碚摓檩o,將TP的最基本內(nèi)容逛一遍,至少讓我們一起學(xué)會如何進(jìn)行最簡單的對數(shù)據(jù)進(jìn)行查、增、改、刪操作并輸出到模板。注意:以下的步驟,僅僅是TP靈活的布署方式其中一種,實(shí)際開發(fā)中可以根據(jù)自己的情況較容易明白。以下不再重復(fù)解釋。速開始一個項(xiàng)目項(xiàng)目:你要開發(fā)的系統(tǒng),稱之為項(xiàng)目。處理。不必理會什么意思,你甚至可以先把它看成是就是入口文件1下載正式版2擬好你的項(xiàng)目名稱,我們這里以Myapp為項(xiàng)目名稱ThinkPHP,起名為Myapp,也就是項(xiàng)目名稱ThinkPHP');Myapp');/');在應(yīng)有模塊中,如果某個操作是需要頁面顯示的,只要對應(yīng)在Myapp/Tpl/default/里建立一個文件夾,文件夾以應(yīng)用模塊的名稱來命名,然后在這個文件夾下,建立一個以這個splay1在Myapp/Tpl/default/下建立一個文件夾,根據(jù)應(yīng)用模塊的名稱,我們將這個文件夾命2在Myapp/Tpl/default/Index/下建立一個html文件,根據(jù)操作名稱,我們命名該文件為3打開Myapp/Lib/Action/文件,修改代碼為classIndexActionextendsAction{publicfunctionindex(){$value='hello,ThinkPHP';$this->assign('name',$value);$this->display();}}>在Action類里面使用assign方法對模板變量賦值,無論何種變量類型都統(tǒng)一使用assign$this->assign('name',$value);<IfModule>RewriteEngineonRewriteCond%{REQUEST_FILENAME}!-dRewriteCond%{REQUEST_FILENAME}!-fRewriteRule^(.*)$$1[QSA,PT,L]</IfModule>te從這一節(jié)開始,我們就要涉及到數(shù)據(jù)庫操作,TP對數(shù)據(jù)庫的操作非常簡便,以下是一些基模型對象:即數(shù)據(jù)對象,你項(xiàng)目里每一個Model類文件都會對應(yīng)著一個數(shù)據(jù)表(或者視圖),模型與數(shù)據(jù)表存在一種映射關(guān)系。TP約定了命名要遵循一定的規(guī)范,如果不符合,則需要根據(jù)情況進(jìn)行額外的相應(yīng)設(shè)置。例如Model類的tableName屬性據(jù)庫中,已建立了一個think_form數(shù)據(jù)庫表,并且在配置文件中,我們定義了數(shù)據(jù)表的前綴是think_,模型類(Model)文件的命名規(guī)則是:不包括前綴的數(shù)據(jù)庫表表名并且首字母大寫+所以之前我們?yōu)閠hink_form數(shù)據(jù)表在Myapp/Lib/Model目錄下建立一個文件模型類的e可以命名為。默認(rèn)配置便可以智能識別自動對應(yīng)think_new_table表,因此不必修改配置。開發(fā)過程中,只要簡單地定義好與數(shù)據(jù)表對應(yīng)的模型類(),就可以進(jìn)行對數(shù)據(jù)操作了。如一般來說,在表中添加數(shù)據(jù)都是通過表單來建立,為了更直觀地學(xué)習(xí)CURD中的C,我們接下來建立個表單來進(jìn)行添加數(shù)據(jù)的操作。之前我們已在Myapp/Lib/Model/下建立好類模型(M)x據(jù)操作的處理過程。我們在實(shí)際操作中體會一下。protected$_auto=array(array('create_time','time','ADD','function'),e函數(shù)作為該字段的值進(jìn)行自動填充。nprotected$_auto=array(array('password','md5','ADD','function'),當(dāng)使用function作為附加規(guī)則時,第二個填充內(nèi)容就代表了這個因子是一個函數(shù)名稱,該函數(shù)的參數(shù)就是代表填充字段的值,比如password的值是123456,則上面的代碼會先將這個值使用函數(shù)md5('123456'),這樣處理后再插入到數(shù)據(jù)表中去。對于function(函數(shù))和callback(回調(diào)方法)理論是一樣的,只不過一個是表示填充內(nèi)容所寫的是函數(shù)名,另一個是表示填充內(nèi)容是類中的方法名。函數(shù)可以是PHP5內(nèi)置函數(shù)或而callback是當(dāng)前模型類所能調(diào)用的一個方法。有關(guān)數(shù)據(jù)填充方面的詳細(xì)資料,請參看官方使用手冊《ThinkPHP數(shù)據(jù)操作指南》<!DOCTYPEHTMLPUBLIC"-[<AHREF="javascript:()">返回</A>]');}}1:將根目錄中的原剪切并粘貼到Myapp文件夾下。更改代碼為:/ThinkPHP');;/');變量(Action)。URLMODELrewrite能去除顯示所以,現(xiàn)在我們的代碼是if(!defined('THINK_PATH'))exit();returnarray(法的命名很符合語言使用習(xí)慣,原來的add,update,all很直觀,易記,可惜沒了)array('field','填充內(nèi)容','填充條件','附加規(guī)則',[額外參數(shù)])alias_import($alias,$classfile='')快速定義和別名導(dǎo)入這是新增的函數(shù),我嘗試注解一下,不正確請指正。該函數(shù)可以動態(tài)設(shè)置文件列表導(dǎo)入和直接導(dǎo)入文件,常會用到的文件別名有'Page'分頁類','ViewModel'視圖模型類','AdvModel'高級模型類','RelationModel'關(guān)聯(lián)模型類',當(dāng)要引入已定義別名的文件,我們只要直接在參數(shù)中傳遞別名就行了。n除了使用已定義的別名外,也可以使用動態(tài)指定。alias_import('zzg',APP_PATH.'/Lib/ORG/');或一次引入多個文件$ailias=array('Abc'=>'Efg'=>APP_PATH.'/Lib/ORG/',APP_PATH.'/Lib/Other/',alias_import($ailias);注:指定文件或別名不存在時會返回false類似的函數(shù)還有import($class,$baseUrl='',$ext='.')由于性能問題,這個方式以后不再支持復(fù)導(dǎo)入,沖突時會提示錯誤。使用這方法時,系統(tǒng)會自動識別導(dǎo)入類庫文件的位置:ORGThinkPHPLibORG目錄TPThinkORGTP項(xiàng)目注意1使用時要注意文件名的大小寫Import.轉(zhuǎn)換為/,如果文件名中含有.,則要將.改為#才能正常導(dǎo)入。注意3導(dǎo)入的類文件后綴默認(rèn)是.2第三方框架類庫導(dǎo)入:vendor($class,$baseUrl='',$ext='.php'),起始目錄統(tǒng)一是ThinkPHP/Vendor默認(rèn)后綴是.php說明3,原來的模板文件保持不變,因?yàn)槲覀円褑⒂昧薉ISPATCH_ON開關(guān)。僅將Myapp/Lib/Action/代碼更改如下classIndexActionextendsAction{publicfunctionindex(){$Form=D("Form")->select();[<ahtef="javascript:()">返回</a>]');}$rs=$Form->add();[<aHREF="javascript:()">返回</a>]');}}}ox{width:600px;margin:10pxauto;border:1pxdashed#e8e8e8;padding:5px;}.submit{height:2em;padding:05px;cursor:pointer;}</style></head><body><formaction="__URL__/add"method="post"name="formname"id="formname"class="box"><p><labelfor="title">標(biāo)題:</label><inputname="title"type="text"id="title"/></p><p><labelfor="email">郵箱:</label><inputname="email"type="text"id="email"/></p><textareaname="content"rows="6"cols="50"id="content"class="textarea"></textarea><p><inputname="submit"type="submit"value="提交"class="submit"/></p></form><p>由{$}發(fā)表于:<em>{$|date='Y-m-d',###}</em></p><p>{$}</p></div></iterate></body></html>在瀏覽器中輸入,可以看到在瀏覽器中輸入,可以看到現(xiàn)在已將數(shù)據(jù)顯示在模板了id的方式顯示在模板上?,F(xiàn)在模板顯示已設(shè)定好,我們來一起學(xué)習(xí)查詢的各種方法:所謂連貫操作,是TP利用__call方法來實(shí)現(xiàn)的一些特殊的Model類方法,可以對數(shù)據(jù)對象命名都很直觀易記,主要方法(參數(shù))有用于查詢表達(dá)式的'field'參數(shù)支持如下鍵名table指定表名稱,可以跨表訪問,若不填則是當(dāng)前DAOdistinct指定是否只列出不重復(fù)數(shù)據(jù),如果想列出不重復(fù)數(shù)據(jù),則為true,不填則無此功能field指定要搜索的字段,不填則為*ere詢條件K使用數(shù)組指定查詢條件$whereArr=array("account"=>"tdweb","home"=>"China"$options=array("where"=>$whereArr$Dao->select($options);這樣默認(rèn)是查詢SELECT*FROM`test`WHERE(`account`='tdweb')AND(`home`='China')是查詢相等條件的。們稍微改下程序publicfunctiontestDb(){C('LIKE_MATCH_FIELDS',"account");$Dao=D("Test");$whereArr=array("account"=>"tdweb","home"=>"China"$options=array("where"=>$whereArrdump($Dao->select($options));echo$Dao->getLastSql();}='China')接著,可以看如下代碼publicfunctiontestDb(){$Dao=D("Test");$whereArr=array("account"=>array("eq","tdweb"),"home"=>array("like","%Chi%"),"age"=>array("between","1,3")$options=array("where"=>$whereArrdump($Dao->select($options));echo$Dao->getLastSql();}這里的$whereArr定義為一個二級數(shù)組,沒一個字段都定義了一個數(shù)組,這樣可以支持更高EQ相等NEQ不相等GT大于EGT不大于LT小于ELT不小于NOTLIKE不相似LIKE相似NULL空NOTNULL不為空EXP使用自己寫的表達(dá)式如何去消化這段內(nèi)容,將在下一節(jié)以我們的實(shí)例Myapp中實(shí)操去體會。8節(jié)視圖查詢ThinkPHP提供了視圖查詢應(yīng)用,利用視圖查詢可以將多個數(shù)據(jù)表的字段內(nèi)容按需要進(jìn)行指合查詢,非常方便和簡單。例如在項(xiàng)目中,我們定義有三個表,useruser_info用戶基礎(chǔ)表,部門分類表現(xiàn)在我們需要獲取某個用戶信息,該信息要包括用戶的帳號名稱和相關(guān)資料與及所在部門的名稱,這時候我們可以利用視圖查詢進(jìn)行處理。讓我們在實(shí)際操作中去體會。1構(gòu)建一個新項(xiàng)目并進(jìn)行相關(guān)配置(可參考前面的教程,這里省略)2創(chuàng)建一個數(shù)據(jù)庫tpview,并添加這三個表用戶表CREATETABLE`think_user`(`id`int(11)unsignedNOTNULLAUTO_INCREMENTCOMMENT'ID編號',`name`varchar(20)NOTNULLCOMMENT'帳戶',`password`varchar(32)NOTNULLCOMMENT'密碼',`dept_id`smallint(6)unsignedNOTNULL,`status`tinyint(1)unsignedNOTNULLDEFAULT'1'COMMENT'開放狀態(tài)',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8COMMENT='會員表'AUTO_INCREMENT=2;INSERTINTO`think_user`(`id`,`name`,`password`,`dept_id`,`status`)VALUES(1,'zzguo28','123456',2,1);用戶信息表CREATETABLE`think_user_info`(`user_id`int(11)NOTNULLCOMMENT'用戶id',`nick_name`varchar(30)NOTNULLCOMMENT'用戶昵稱',`email`varchar(100)NOTNULLCOMMENT'郵箱地址',`address`varchar(100)NOTNULLCOMMENT'詳細(xì)地址',`gender`tinyint(1)NOTNULLDEFAULT'0'COMMENT'性別',`mobile`varchar(100)NOTNULLCOMMENT'手機(jī)號碼',`telephone`varchar(100)NOTNULLCOMMENT'電話號碼',KEY`user_id`(`user_id`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT='用戶信息表';INSERTINTO`think_user_info`(`user_id`,`nick_name`,`email`,`address`,`gender`,`mobile`,`telephone`)VALUES部門分類表CREATETABLE`think_dept`(`id`smallint(3)NOTNULLAUTO_INCREMENT,`name`varchar(50)NOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=4;INSERTINTO`think_dept`(`id`,`name`)VALUES3在項(xiàng)目/Lib/Model下創(chuàng)建這三個表的基礎(chǔ)模型Model本示例沒涉及到驗(yàn)證等其它功能,所以只要簡單定義測可,例如classUserModelextendsModel{}>操作。4創(chuàng)建視圖模型,代碼如下,詳細(xì)注解見其后:建議使用動態(tài)擴(kuò)展功能去使用視圖查詢,而不再是本教程的繼承方式。那樣使用會更靈活。import('ViewModel');classUserViewModelextendsViewModel{protected$viewFields=array('User''UserInfo'=>array('id','name','_as'=>'u','_type'=>'left'),=>array('email','mobile','_as'=>'ui','_on'=>'='),'Dept'=>array('name'=>'dept','_on'=>'='),}>在行2代碼中,因?yàn)榘嬉褜⒁晥D查詢分離出原Model類,所以這里需要使用import方法引型類。行3代碼中,定義了該模型名稱為UserViewModel,視圖模型的名稱Model前的命名是隨意的,只是為了有別于其它模型,通常我們會以xxxViewModel這樣的方式去命名。并且一定格式是protected$viewFields=array(t使用同樣的方式添加。classIndexActionextendsAction{publicfunctionindex(){$dao=D('UserView');$where['']=1;dump($dao->where($where)->find());dump($dao->getLastSql());}}>然后訪問該操作,可以看到我們成功取得所需的查詢內(nèi)容:array(1){[0]=>array(5){["id"]=>string(1)"1"["name"]=>string(7)"zzguo28"["email"]=>string(17)""["mobile"]=>string(11)""["dept"]=>string(9)"銷售部"}}"SELECTASid,ASname,ASemail,ASmobile,ASdeptFROMthink_useruLEFTJOINthink_user_infouiON=JOINthink_deptDeptON=WHERE(=1)LIMIT1"不過視圖模型只能用于查詢,要關(guān)聯(lián)更新寫入可以使用關(guān)聯(lián)模型第9節(jié)關(guān)聯(lián)操作ThinkPHP高級模型類中提供了對關(guān)聯(lián)操作的支持。由于關(guān)聯(lián)查詢在定義和操作方面相對來,其實(shí)使用起來也并不算復(fù)雜,對于需要同時對多表進(jìn)行寫入、更新、查詢和刪除的情況,比并不會相差多少。下面我們以一個實(shí)例來講述表的關(guān)聯(lián)操作簡單用法。求分析:在一個項(xiàng)目中,需要建立一個全面的會員資料檔案,這個檔案要包括:會員的基本資料;會員的詳細(xì)資料;會員所在地區(qū):東區(qū)、南區(qū)、西區(qū)、北區(qū);會員的興趣群組:琴、棋、書、畫;useruser_inforearoup會員基本表會員詳細(xì)資料表地區(qū)表興趣群組表消費(fèi)卡帳號記錄表HAS_ONE1BELONGS_TO2HAS_MANY3MANY_TO_MANY41所有的資料都是以會員來聯(lián)系,因此我們將以會員基本表user為核心。2每個會員都有一份自己的詳細(xì)資料,屬于一對一關(guān)系,因此user_info表使用HAS_ONE3每個會員都屬于其中一個地區(qū),是從屬關(guān)系,因此area表使用BELONGS_TO關(guān)聯(lián)4會員的興趣可能是一種或幾種,各種興趣自然也有多個用戶,是多對多關(guān)系,因此groupTP關(guān)聯(lián)操作的中間表定義有個默認(rèn)規(guī)則(主表_關(guān)聯(lián)表),如果不是這種形式,可以使用這里使用默認(rèn)規(guī)則,所以要多添加一個表user_group作為中間表。表會員基本表CREATETABLE`think_user`(`id`mediumint(6)NOTNULLAUTO_INCREMENT,`name`varchar(25)NOTNULLCOMMENT'名稱',`area_id`smallint(3)NOTNULLCOMMENT'地區(qū)id',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=3;會員詳細(xì)資料表CREATETABLE`think_user_info`(`id`mediumint(6)NOTNULLAUTO_INCREMENT,`user_id`mediumint(6)NOTNULLCOMMENT'會員ID',`email`varchar(255)NOTNULLCOMMENT'郵箱地址',`nickname`varchar(50)NOTNULLCOMMENT'昵稱',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT='詳細(xì)資料表'AUTO_INCREMENT=1;地區(qū)表CREATETABLE`think_area`(smallintNOTNULLAUTOINCREMENTCOMMENTid`name`varchar(50)NOTNULLCOMMENT'地區(qū)名稱',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT='地區(qū)表'AUTO_INCREMENT=5;INSERTINTO`think_area`(`id`,`name`)VALUES興趣群組表CREATETABLE`think_group`(`id`mediumint(6)NOTNULLAUTO_INCREMENT,`name`varchar(50)NOTNULLCOMMENT'群組名',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=5;INSERTINTO`think_group`(`id`,`name`)VALUES消費(fèi)卡帳號記錄表CREATETABLE`think_card`(idmediumintNOTNULLAUTOINCREMENTCOMMENTID編號',OMMENTID`card`varchar(25)NOTNULLCOMMENT'消費(fèi)卡帳號',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8ROW_FORMAT=DYNAMICCOMMENT='興趣消費(fèi)卡表'AUTO_INCREMENT=5;會員與群組的中間表CREATETABLE`think_user_group`(`id`mediumint(6)NOTNULLAUTO_INCREMENT,`group_id`mediumint(5)NOTNULLCOMMENT'群組ID',`user_id`mediumint(5)NOTNULLCOMMENT'會員ID',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8AUTO_INCREMENT=1;關(guān)聯(lián)操作必需建立基礎(chǔ)表,在項(xiàng)目配置文件里面定義好數(shù)據(jù)庫的連接信息后,我們在項(xiàng)目/Lib/Model下對應(yīng)數(shù)據(jù)表建立各個基礎(chǔ)模型類(中間表無需建立模型)classUserInfoModelextendsModel{}.格式描述中,對于屬性我們使用了一個修飾詞:該表的關(guān)聯(lián)方式的屬性。操作其實(shí)也很簡單。各種關(guān)聯(lián)關(guān)系去對號入座。完整方式的定義,替換上面的格式,會類似這樣,這里以Area表進(jìn)行示例說明允許定義的屬性這個概念classUserModelextendsModel{protected$_link=array('Area'=>array('mapping_type'=>BELONGS_TO,'mapping_name'=>'Area','class_name'=>'Area','foreign_key'=>'area_id',}上面代碼中,mapping_type,foreign_key...這些,就是允許定義的屬性所有可定義的屬性概述mapping_type用以定義該表與主表的關(guān)聯(lián)類型mapping_type所定義的內(nèi)容必須是常量,共有下面四種方HAS_ONE表示當(dāng)前模型(主表)擁有一個子對象,例如本例中的user_info,每個會員對應(yīng)一個資料表Belongs_to表示當(dāng)前模型從屬于另外一個父對象,例如每個會員都從屬于一個地區(qū)HAS_MANY表示當(dāng)前模型擁有多個子對象,例如每個用戶有多個興趣消費(fèi)卡MANY_TO_MANY表示當(dāng)前模型可以屬于多個對象,而父對象則可能包含有多個子對象,通常興趣組可以有多個用戶class_name要關(guān)聯(lián)的模型類名稱。例如示例代碼所定義的Area,再次提醒,一定要確保已定義了此模型類(AreaModel)。mapping_name關(guān)聯(lián)的映射名稱,用于獲取數(shù)據(jù)用,作為數(shù)據(jù)集中與主表字段并列的數(shù)據(jù)索引。該名稱不能與當(dāng)前模型的字段重復(fù),否則會導(dǎo)致關(guān)聯(lián)數(shù)據(jù)獲取的沖突mapping_name沒有定foreign_key關(guān)聯(lián)的外鍵名稱foreign_key如果沒定義,則默認(rèn)是當(dāng)前數(shù)據(jù)對象名稱+_id作為外鍵置)那么think_user表的外鍵默認(rèn)為user_id,如果不是,就用該屬性進(jìn)行顯式指定,例如數(shù)據(jù)表定義的外鍵是userId,則使用'foreign_key'=>'userId',這種方式去申明Condition性進(jìn)行定義mapping_fields關(guān)聯(lián)要查詢的字段如果沒有定義,默認(rèn)關(guān)聯(lián)查詢的關(guān)聯(lián)數(shù)據(jù)是該關(guān)聯(lián)表的全部字段。如果僅僅是需要查詢其中的個別字段,可以使用該屬性進(jìn)行指定as_fields直接把關(guān)聯(lián)的字段值映射成數(shù)據(jù)對象中的某個字段的字段名稱有沖突時,可以使用下面這種方式進(jìn)行定義:'as_fields'=>'email,nickname:username',沒有定義該屬性時數(shù)據(jù)類似于:["id"]=>string(1)"2"["name"]=>string(8)"thinkphp"["Card"]=>array(1){[0]=>array(1){["card"]=>string(8)""}如果定義了映射,則類似于["id"]=>string(1)"2"["name"]=>string(8)"thinkphp"["card"]=>string(8)""parent_key自引用關(guān)聯(lián)的關(guān)聯(lián)字段自引用關(guān)聯(lián)是一種比較特殊的關(guān)聯(lián),也就是關(guān)聯(lián)表就是當(dāng)前表。mapping_limitmapping_orderrelation_foreign_key關(guān)聯(lián)表的外鍵名稱(MANY_TO_MANY獨(dú)有屬性)默認(rèn)的關(guān)聯(lián)表的外鍵名稱是表名+_id如果不符合,可通過此屬性進(jìn)行指定relation_table關(guān)聯(lián)的中間表名稱(MANY_TO_MANY獨(dú)有屬性)condition如果沒有設(shè)置該屬性,默認(rèn)通過當(dāng)前模型的getRelationTableName方法來自動獲取roup是:如果兩個表存在一個對應(yīng)的中間表,該中間表的命名方式為數(shù)據(jù)表前綴+_+關(guān)聯(lián)操作的主表名+_+關(guān)聯(lián)表名例如本示例中,由think_user表操作關(guān)聯(lián)表,所以和think_group表的中間表名稱是thinkusergroupthinkgroup作,那么中間命名是think_group_user,中間表通常只是由user_id和group_id構(gòu)成就可以了。如果中間表不符合上面的規(guī)則,則需要通過該屬性去顯式指定中間表名稱。各種關(guān)聯(lián)關(guān)系類型可用屬性歸納如下,使用中可對照此表和參考上面定義解釋HAS_ONE可用屬性mapping_typeclass_namemapping_nameforeign_keyconditionmapping_fieldsas_fieldsBELONGS_TO可用屬性mapping_nameforeign_keymapping_fieldsparent_keyas_fieldsHAS_MANY可用屬性mapp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年武漢音樂學(xué)院線上筆試及答案
- 2026年商標(biāo)品牌保護(hù)應(yīng)用培訓(xùn)
- 2025年福建事業(yè)編面試考試題及答案
- 2025年楚雄事業(yè)單位考試題目及答案
- 2025年揚(yáng)州人事考試歷年真題及答案
- 2026內(nèi)蒙古通遼市科爾沁區(qū)招聘政府專職消防隊(duì)員、專職消防車駕駛員30人筆試備考題庫及答案解析
- 2026年七夕節(jié)的文化碰撞與現(xiàn)代化
- 2026年元旦快樂淡藍(lán)插畫的故事世界
- 2026年快樂元旦兒童插畫故事
- 2026年合肥高新區(qū)祥生云境幼兒園招聘2名筆試備考題庫及答案解析
- 2026年維修工崗位面試題庫含答案
- 2026年溫州市1.5模高三語文試題作文題目解析及3篇范文:打扮自己與打扮大地
- 2026年湘西民族職業(yè)技術(shù)學(xué)院單招職業(yè)技能筆試參考題庫含答案解析
- 2025-2026學(xué)年教科版(新教材)小學(xué)科學(xué)三年級下冊《昆蟲的一生》教學(xué)設(shè)計
- 2025年12月福建廈門市鷺江創(chuàng)新實(shí)驗(yàn)室管理序列崗位招聘8人參考題庫附答案
- 化工工藝安全管理與操作手冊
- 規(guī)范外匯交易管理制度
- 高考英語讀后續(xù)寫技巧總結(jié)
- 2025年下半年河南鄭州市住房保障和房地產(chǎn)管理局招聘22名派遣制工作人員重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 維修事故協(xié)議書
- 2025ESC+EAS血脂管理指南要點(diǎn)解讀課件
評論
0/150
提交評論